English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом руководстве вы узнаете о переменных, как создавать переменные и основные типы данных, поддерживаемые Kotlin.
Как вы знаете, переменные - это место в памяти (области хранения), где хранятся данные.
Чтобы указать область хранения, каждой переменной следует присвоить уникальное имя (идентификатор). Узнайте больше оКак называть переменные в Kotlin?Более подробная информация
Чтобы объявить переменную в Kotlin, используйте ключевые слова var или val. Вот пример:
var language = "French" val score = 95
В этой статье мы рассмотрим различия между использованием var и val.但现在让我们集中讨论 переменные.
Здесь, language - это переменная типа String, score - переменная типа Int. Вы не обязаны указывать тип переменной; Kotlin сделает это автоматически. Компилятор знает это, исходя из инициализационного выражения (в上面的 программе "French" - это строка, а 95 - целое число). В программировании это называется Инференция типов.
Но если вам нужно выполнить следующие действия, вы можете явно указать тип:
var language: String = "French" val score: Int = 95
В примере, приведенном выше, мы инициализировали переменные в процессе объявления. Но это не обязательно. Вы можете объявить переменную и указать ее тип в одном предложении, а затем�始化 переменную в другом предложении в программе.
var language: String // Объявление переменной типа String ... .. ... language = "French" // Инициализация переменной val score: Int // Объявление переменной типа Int ... .. ... score = 95 // Инициализация переменной
Вот несколько примеров ошибок.
var language // Ошибка language = "French"
Здесь переменная language не указана тип переменной и не инициализирована на этапе объявления.
var language: String language = 14 // Ошибка
Здесь мы пытаемся присвоить целочисленное значение 14 переменной различного типа (String), что также вызывает ошибку.
val(Неизменяемая ссылка) - После назначения значения переменная, объявленная с помощью ключевого слова val, не может быть изменена. Это аналогично переменной final в Java.
var(Изменяемая ссылка) - Переменные, объявленные с помощью ключевого слова var, можно изменить позже в программе. Это соответствует обычной переменной Java.
Вот несколько примеров:
var language = "French" language = "German"
Здесь переменная language перераспределена значение German. Поскольку переменная была объявлена с помощью var, этот код работает без ошибок.
val language = "French" language = "German" // Ошибка
В примере выше вы не можете перераспределить значение переменной language на German, так как переменная была объявлена с помощью val.
Теперь, когда вы знаете, что такое переменная Kotlin, настало время изучить различные значения, которые может принимать переменная Kotlin.
Kotlin - это статический тип языка, аналогичный Java. Это означает, что тип переменной известен на этапе компиляции. Например:
val language: Int val marks = 12.3
Здесь компилятор знает, что тип переменной language - Int, и до компиляции marks имеет тип Double.
Внутренние типы Kotlin можно классифицировать как:
Числа (числа)
Знаки (characters)
Булевы (booleans)
Массивы (arrays)
Числа в Kotlin аналогичны числам в Java. Есть 6 встроенных типов данных для чисел.
Byte
Short
Int
Long
Float
Double
Диапазон значений типа Byte варьируется от -128 до 127 (8-битное знаковое кодирование в двоичном формате).
если можно определить, что значение переменной находится в диапазоне [-128, 127], то можно использовать его вместо Int или других типов данных для экономии памяти.
fun main(args: Array<String>) { val range: Byte = 112 println("$range") //下面的代码显示错误。为什么? // val range1: Byte = 200 }
При запуске программы выводится:
112
Диапазон значений типа Short варьируется от -32768 до 32767 (16-битное знаковое кодирование в двоичном формате).
если можно определить, что значение переменной находится в диапазоне [-32768, 32767], то можно использовать его вместо других типов данных для экономии памяти.
fun main(args: Array<String>) { val temperature: Short = -11245 println("$temperature") }
При запуске программы выводится:
-11245
Диапазон значений типа Int варьируется от -231 до 231-1 (32-битное знаковое кодирование в двоичном формате).
fun main(args: Array<String>) { val score: Int = 100000 println("$score") }
При запуске программы выводится:
100000
если вам назначено -231 до 231если переменной назначено -2
fun main(args: Array<String>) { // score — тип Int val score = 10 println("$score") }
если используется IntelliJ IDEA, то можно установить курсор на переменную и затем нажать Ctrl + Shift + P, чтобы увидеть тип.
Диапазон значений типа Long варьируется от -263 до 263-1 (64-битное знаковое кодирование в двоичном формате).
fun main(args: Array<String>) { val highestScore: Long = 9999 println("$highestScore") }
При запуске программы выводится:
9999
если переменной назначено больше 231-1 или меньше -231 的整数值(未明确指定其类型),则该变量将为 Long 类型。例如,
val distance = 10000000000 // Long类型的变量distance
Таким же образом, вы можете использовать заглавные буквы L для указания типа переменной как Long. Например,
val distance = 100L // значение distance типа Long
Тип данных Double является двойной точностью 64-битным плавающей запятой.
fun main(args: Array<String>) { // distance является типом Double val distance = 999.5 println("$distance") }
При запуске программы выводится:
999.5
Тип данных Float является одинарной точностью 32-битным плавающей запятой.
fun main(args: Array<String>) { // distance является типом Float val distance = 19.5F println("$distance") }
При запуске программы выводится:
19.5
Обратите внимание, что мы используем 19.5F вместо 19.5. Это потому, что 19.5 является литералом Double, и поэтому вы не можете назначить значение Double типу FloatПеременная.
Чтобы компилятор рассматривал 19.5 как Float, вам нужно использовать F в конце.
Если вы не уверены,何值将被 назначен переменной в программе, вы можете определить её как тип Number. Это позволяет вам назначать как целые значения, так и значения с плавающей запятой (одновременно одному значению). Например:
fun main(args: Array<String>) { var test: Number = 12.2 println("$test") test = 12 // Число Number автоматически преобразуется в Int println("$test") test = 120L // Число Number автоматически преобразуется в Long println("$test") }
При запуске программы выводится:
12.2 12 120
Для представления символов в Kotlin используется тип данных Char.
В отличие от Java, тип данных Char не может рассматриваться как число. Посетите эту страницу, чтобы узнать оТип данных char в JavaБолее подробная информация.
fun main(args: Array<String>) { val letter: Char letter = 'k' println("$letter") }
При запуске программы выводится:
k
В Java вы можете выполнить следующее действие:
char letter = 65;
Но следующая кодировка в Kotlin приводит к ошибке.
var letter: Char = 65 // Ошибка
Тип данных Boolean имеет два возможных значения: true или false.
fun main(args: Array<String>) { val flag = true println("$flag") }
Булево значение используется для решений в предложениях (обсудится в后续 главах).
Массив является контейнером, который содержит данные одного типа (значения). Например, вы можете создать массив, который может содержать 100 значений типа Int.
В Kotlin массивы представляются классом Array. Этот класс имеет функции get и set, атрибут size и другие полезные члены.
В Kotlin строки представляются классом String. Например, такие строковые literals "this is a string" реализованы как экземпляры этого класса.