Различия между val и const val в Kotlin

kotlin

To val, or to const val, that is the question — заметка о различиях между val и const val в Kotlin.

РЕКОМЕНДУЕМ:
Полезные советы разработчику на языке Kotlin

Возьмем следующий пример:

Обе эти переменные немодифицируемые, но вторая объявлена с ключевым словом const в начале. Что это значит на деле? Во-первых, FANCY_VAL станет приватной переменной, для доступа к которой будет создан геттер. Это можно увидеть, если скомпилировать код и затем декомпилировать его в Java:

Во-вторых, переменная FANCY_CONST_VAL будет заинлайнена, то есть компилятор заменит все полученные значения этой переменной на само значение. Это тоже можно увидеть, если написать код, использующий эти переменные, а затем скомпилировать и декомпилировать его.

Оригинальный код:

Декомпилированный код:

Вывод: const val позволяет оптимизировать код, избавившись от ненужных геттеров и обращений к переменным.

РЕКОМЕНДУЕМ:
Inline-функции Kotlin

Понравилась статья? Поделиться с друзьями:
Добавить комментарий