929 подписчиков
Разница между const и val
Оба слова используются для объявления неизменяемой переменной. Так в чем же разница?
const используется для объявления тех свойств, которые являются неизменяемыми по своей природе, т.е. они должны определяться во время компилирования. Во время выполнения константу нельзя объявить и проинициализировать.
Для констант есть несколько требований:
— Должна быть на уровне top-level или членом object или companion object
— Это должна быть строка или примитивный тип;
— Без кастомных геттеров.
Из этого следует, что мы не можем сделать константой какую-то функцию или класс, потому что они инициализируются в рантайме.
val мы можем инициализировать в рантайме. Например, можно в коде написать что-то в стиле valCatName = getCatName() и оно будет работать.
Зачем использовать const, если можно всегда использовать val? Когда мы используем константу, то она создается во время компиляции и не будет никаких дополнительных расходов во время выполнения.
Около минуты
17 марта 2022
189 читали