lazy

Common
JVM
Native
1.0
fun <T> lazy(initializer: () -> T): Lazy<T>
(Common source) (JVM source) (Native source)
JS
1.1
fun <T> lazy(initializer: () -> T): <ERROR CLASS><T>
(source)
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.

Common
JVM
Native
1.0
fun <T> lazy(
    mode: LazyThreadSafetyMode,
    initializer: () -> T
): Lazy<T>

(Common source) (JVM source) (Native source)
For Common

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.

Common
Native
1.0
@DeprecatedSinceKotlin("1.9") fun <T> lazy(
    lock: Any?,
    initializer: () -> T
): Lazy<T>

(Common source) (Native source)
Deprecated: Synchronization on Any? object is supported only in Kotlin/JVM.
JVM
1.0
fun <T> lazy(lock: Any?, initializer: () -> T): Lazy<T>
(source)
JS
1.1
@DeprecatedSinceKotlin("1.9") fun <T> lazy(
    lock: Any?,
    initializer: () -> T
): <ERROR CLASS><T>

(source)
Deprecated: Synchronization on Any? object is not supported.
For Common

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.

For JS

Creates a new instance of the Lazy that uses the specified initialization function initializer.

The lock parameter is ignored.

JS
1.1
fun <T> lazy(
    mode: <ERROR CLASS>,
    initializer: () -> T
): <ERROR CLASS><T>

(source)

Creates a new instance of the Lazy that uses the specified initialization function initializer.

The mode parameter is ignored.