lazy
fun <T> lazy(initializer: () -> T): Lazy<T>
Для JVM, Native
Создаёт новый экземпляр Lazy, использующий указанную функцию инициализации initializer и режим потоковой безопасности по умолчанию LazyThreadSafetyMode.SYNCHRONIZED.
Если инициализация значения приводит к исключению, будет предпринята попытка повторной инициализации значения при следующем обращении.
Обратите внимание, что возвращаемый экземпляр использует себя для синхронизации. Не синхронизируйтесь с внешнего кода по возвращаемому экземпляру, так как это может привести к случайной блокировке. Также данное поведение может быть изменено в будущем.
Для JS
Создаёт новый экземпляр Lazy, использующий указанную функцию инициализации initializer.
fun <T> lazy( mode: LazyThreadSafetyMode, initializer: () -> T ): Lazy<T>
Для Common, JS
Создаёт новый экземпляр Lazy, использующий указанную функцию инициализации initializer.
Параметр mode игнорируется.
Для JVM, Native
Создаёт новый экземпляр Lazy, использующий указанную функцию инициализации initializer и режим потоковой безопасности mode.
Если инициализация значения приводит к исключению, будет предпринята попытка повторной инициализации значения при следующем обращении.
Обратите внимание, что при указании режима LazyThreadSafetyMode.SYNCHRONIZED возвращаемый экземпляр использует себя для синхронизации. Не синхронизируйтесь с внешнего кода по возвращаемому экземпляру, так как это может привести к случайной блокировке. Также данное поведение может быть изменено в будущем.
fun <T> lazy(lock: Any?, initializer: () -> T): Lazy<T>
Для Common, JS
Создаёт новый экземпляр Lazy, использующий указанную функцию инициализации initializer.
Параметр lock игнорируется.
Для JVM, Native
Создаёт новый экземпляр Lazy, использующий указанную функцию инициализации initializer и режим потоковой безопасности по умолчанию LazyThreadSafetyMode.SYNCHRONIZED.
Если инициализация значения приводит к исключению, будет предпринята попытка повторной инициализации значения при следующем обращении.
Возвращаемый экземпляр использует указанный объект lock для синхронизации. Если объект lock не указан, экземпляр использует себя для синхронизации. В этом случае не синхронизируйтесь с внешнего кода по возвращаемому экземпляру, так как это может привести к случайной блокировке. Также данное поведение может быть изменено в будущем.
© 2010–2023 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/lazy.html