lazy
fun <T> lazy(initializer: () -> T): Lazy<T>
For JVM, Native
Creates a new instance of the Lazy that uses the specified initialization function initializer and the default thread-safety mode LazyThreadSafetyMode.SYNCHRONIZED.
If the initialization of a value throws an exception, it will attempt to reinitialize the value at next access.
Note that the returned instance uses itself to synchronize on. Do not synchronize from external code on the returned instance as it may cause accidental deadlock. Also this behavior can be changed in the future.
For JS
Creates a new instance of the Lazy that uses the specified initialization function initializer.
fun <T> lazy(
mode: LazyThreadSafetyMode,
initializer: () -> T
): Lazy<T>
For Common, JS
Creates a new instance of the Lazy that uses the specified initialization function initializer.
The mode parameter is ignored.
For JVM, Native
Creates a new instance of the Lazy that uses the specified initialization function initializer and thread-safety mode.
If the initialization of a value throws an exception, it will attempt to reinitialize the value at next access.
Note that when the LazyThreadSafetyMode.SYNCHRONIZED mode is specified the returned instance uses itself to synchronize on. Do not synchronize from external code on the returned instance as it may cause accidental deadlock. Also this behavior can be changed in the future.
fun <T> lazy(lock: Any?, initializer: () -> T): Lazy<T>
For Common, JS
Creates a new instance of the Lazy that uses the specified initialization function initializer.
The lock parameter is ignored.
For JVM, Native
Creates a new instance of the Lazy that uses the specified initialization function initializer and the default thread-safety mode LazyThreadSafetyMode.SYNCHRONIZED.
If the initialization of a value throws an exception, it will attempt to reinitialize the value at next access.
The returned instance uses the specified lock object to synchronize on. When the lock is not specified the instance uses itself to synchronize on, in this case do not synchronize from external code on the returned instance as it may cause accidental deadlock. Also this behavior can be changed in the future.