我们可以做的

val obj = Obj()
with (obj) {
    objMethod1()
    objMethod2()
}

但是有办法吗?
val obj = with(Obj()) {
    objMethod1()
    objMethod2()
}

解决创建一个对象并对其调用一些方法以初始化其状态的常见情况。

最佳答案

当然,您可以使用 .apply { } stdlib函数,该函数


public inline fun <T> T.apply(block: T.() -> Unit): T { block(); return this }

用法示例:
val obj = Obj().apply {
    objMethod1()
    objMethod2()
}

您可以在许多其他Kotlin惯用语here in the reference中找到它。

10-05 21:49