РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
19 of 723 menu

Ключевое слово late

Ключевое слово late в Dart используется для объявления переменных, которые будут инициализированы не в момент объявления, а позже. Это может быть полезно, когда значение переменной неизвестно на момент создания объекта или когда вычисление значения является дорогостоящей операцией и должно выполняться только при первом обращении. Существует два основных сценария использования late: отложенная инициализация полей класса и ленивые переменные верхнего уровня или локальные переменные.

Синтаксис

late type variableName; late type variableName = initializer;

Пример

Давайте рассмотрим пример отложенной инициализации поля класса с помощью late:

class Example { late String value; } void main() { Example ex = Example(); ex.value = 'abcde'; print(ex.value); }

Результат выполнения кода:

"abcde"

Пример

Давайте рассмотрим пример ленивой переменной с инициализатором, который вычисляется только при первом обращении:

late String message = getMessage(); String getMessage() { print('Вычисление значения'); return 'abcde'; } void main() { print('До обращения'); print(message); print('После обращения'); print(message); }

Результат выполнения кода:

"До обращения" "Вычисление значения" "abcde" "После обращения" "abcde"

Пример

Давайте рассмотрим пример, в котором late переменная инициализируется в отдельном методе:

class Data { late int number; void init() { number = 12345; } } void main() { Data data = Data(); data.init(); print(data.number); }

Результат выполнения кода:

12345

Пример

Если обратиться к late переменной до её инициализации, возникнет ошибка. Давайте убедимся в этом:

void main() { late String value; print(value); }

Результат выполнения кода:

LateInitializationError: Field 'value' has not been initialized.

Смотрите также

  • ключевое слово final,
    которое объявляет неизменяемую переменную
  • ключевое слово const,
    которое объявляет константу времени компиляции
  • ключевое слово var,
    которое объявляет переменную с автоматическим выводом типа
  • ключевое слово void,
    которое указывает на отсутствие возвращаемого значения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить