Переменные
Переменная — это место в памяти, которое может содержать данные определенного типа. Их можно создать с помощью ключевого слова val
или var
.
После чего следует её название. Переменная обычно начинается со строчной буквы, а каждое новое слово - с заглавной, без пробелов или подчёркиваний. В конце ставится равно и указывается значение.
var i = 10 // В этой переменной хранится число 10
val k = 2.0f // А в этой переменной хранится дробное число 2.0, f - указывает тип - Float
val s = "Hollow World" // Эта переменная уже хранит не число, а строку текста
var d = 5.24 // Эта переменная хранит дробное число 5.24
//Последний тип дробное число без пометки f - имеет тип Double, он занимает больше памяти, но и может хранить большие числа, подробнее в главах ниже
Виды переменных
В Kotlin есть 2 вида переменных: изменяемые и неизменяемые.
Неизменяемые переменные
Объявляются ключевым словом val
(Value) - их значение указывается единожды и не может быть изменено.
val number = 10
val name = "Pavel"
Изменяемые переменные
Объявляются ключевым словом var
(Variable) - их значение можно изменить после присвоения значения.
var number = 5
number = 15
var eda = "Kruasan"
eda = "Belyash"
Содержимое неизменяемых переменных (val
) изменить можно, но саму переменную - нет
val list = mutableListOf(1, 2, 3, 4, 5)
list = mutableListOf(1, 2, 3) // Этот код изменить не получится, потому что вы не можете положить *новый* список в неизменяемую переменную
list.remove(4)
list.remove(5) // А удалить элементы из *существующего* списка вы - можете, сам список не меняется, меняется только его содержимое.
Ручная типизация переменных
Kotlin умеет автоматически определять тип переменной в зависимости от того, что вы ему передадите.
Но иногда вам может потребоваться указать более обобщённый тип, для этого после названия укажите его через двоеточие (:
).
var i = 0 // Здесь мы не указываем тип переменной, так что Kotlin сам определит, что 0 имеет тип `Int`, соответственно и переменная тоже
var j: Number = 0 // Здесь мы указываем, что тип переменной - Number, т.е. Любое число
i = 10f // Здесь будет ошибка, потому что тип переменной Int (целое число), а передаётся Float (дробное число)
j = 10f // А тут ошибки не будет, потому что мы сказали, что тип переменной - любое число