AutoCloseable

expect inline fun AutoCloseable(crossinline closeAction: () -> Unit): AutoCloseable(source)

Returns an AutoCloseable instance that executes the specified closeAction upon invocation of its close() function.

This function allows specifying custom cleanup actions for resources.

Note that each invocation of the close() function on the returned AutoCloseable instance executes the closeAction. Therefore, implementers are strongly recommended to make the closeAction idempotent, or to prevent multiple invocations.

Example:

val autoCloseable = AutoCloseable {
// Cleanup action, e.g., closing a file or releasing a network connection
Logger.log("Releasing the network connection.")
networkConnection.release()
}

// Now you can pass the autoCloseable to a function or use it directly.
autoCloseable.use {
// Use the connection, which will be automatically released when this scope finishes.
val content = networkConnection.readContent()
Logger.log("Network connection content: $content")
}

Since Kotlin

2.0

See also

actual inline fun AutoCloseable(crossinline closeAction: () -> Unit): AutoCloseable(source)

Since Kotlin

2.0
actual inline fun AutoCloseable(crossinline closeAction: () -> Unit): AutoCloseable(source)

Since Kotlin

2.0
actual inline fun AutoCloseable(crossinline closeAction: () -> Unit): AutoCloseable(source)

Since Kotlin

2.0
actual inline fun AutoCloseable(crossinline closeAction: () -> Unit): AutoCloseable(source)

Since Kotlin

2.0
actual inline fun AutoCloseable(crossinline closeAction: () -> Unit): AutoCloseable(source)

Since Kotlin

2.0