Переменные

Последнее обновление: 02.03.2024

Для хранения данных в программе в Kotlin, как и в других языках программирования, применяются переменные. Переменная представляет именованный участок памяти, который хранит некоторое значение.

Каждая переменная характеризуется определенным именем, типом данных и значением. Имя переменной представляет поизвольный идентификатор, который может содержать алфавитно-цифровые символы или символ подчеркивания и должен начинаться либо с алфавитного символа, либо со знака подчеркивания. Для определения переменной можно использовать либо ключевое слово val, либо ключевое слово var.

Формальное определение переменной:

val|var имя_переменной: тип_переменной

Вначале идет слово val или var, затем имя переменной и через двоеточие тип переменной.

Например, определим переменную age:

var age: Int

То есть в данном случае объявлена переменная age, которая имеет тип Int. Тип Int говорит о том, что переменная будет содержать целочисленные значения.

После определения переменной ей можно присвоить значение:

fun main() {
    var age: Int
    age = 23
    println(age)
}

Для присвоения значения переменной используется знак равно. Затем мы можем производить с переменной различные операции. Например, в данном случае с помощью функции println() значение переменной выводится на консоль. И при запуске этой программы на консоль будет выведено число 23.

Присвоение значения переменной должно производиться только после ее объявления. И также мы можем сразу присвоить переменной начальное значение при ее объявлении. Такой прием называется инициализацией:

fun main() {
    var age: Int = 23
    println(age)
}

Однако обязательно надо присвоить переменной некоторое значение до ее использования:

fun main() {

    var age: Int
    println(age)// Ошибка, переменная не инициализирована
}

Изменяемые и неизменяемые переменные

Выше было сказано, что переменные могут объявляться как с помощью слова val, так и с помощью слова var. В чем же разница между двумя этими способами?

С помощью ключевого слова val определяется неизменяемая переменная (immutable variable) или переменная только для чтения (read-only). То есть мы можем присвоить значение такой переменной только один раз, но изменить его после первого присвоения мы уже не сможем. Например, в следующем случае мы получим ошибку:

fun main() {
    val age: Int
    age = 23        // здесь норм - первое присвоение
    age = 56        // здесь ошибка - переопределить значение переменной нельзя
    println(age)
}

А у переменной, которая определена с помощью ключевого слова var мы можем многократно менять значения (mutable variable):

fun main() {
    var age: Int
    age = 23
    println(age)
    age = 56
    println(age)
}

Поэтому если не планируется изменять значение переменной в программе, то лучше определять ее с ключевым словом val.

Определение констант

Также Kotlin поддерживает константы времени компиляции. Для их определения применяются ключевые слова const val:

const val maxAge = 120  // константа
fun main() {
    println(maxAge)
}

В данном случае maxAge является константой.

Отличительной особенностью констант является то, что они на стадии компиляции должны иметь некоторое значение, и это значение изменить нельзя. Это накладывает на использование констант ряд ограничений:

  • Естественно нельзя изменить значение константы:

    const val maxAge = 120  // константа
    fun main() {
        maxAge = 1500   // ошибка 
        println(maxAge)
    }
    

    Здесь при попытке присвоения константе maxAge нового значения в функции main мы столкнемся с ошибкой на стадии компиляции. Если мы работаем в среде Intellij IDEA или Android Studio, то уже при написании кода на подобные ошибки укажет сама среда разработки.

  • Константа должна объявляться на самом верхнем уровне (вне класса/функции):

    fun main() {
        const val maxAge = 120   // ошибка 
        println(maxAge)
    }
    
  • Тип данных константы должен соответствовать одному из примитивных (например, Int) или типу String

Также стоит отметит отличие val-переменных от констант (const val): значение val-переменных устанавливается во время выполнения, а значение констант - во время компиляции. Значение val-переменной также нельзя изменить после установки, однако мы можем объявить val-переменную, а потом дальше в программе присвоить ей значение. Константе же необходимо присвоить значение сразу при определении.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850