以语句作为表达式的Kotlin
我们能做到以语句作为表达式的Kotlin,kotlin,Kotlin,我们能做到 val obj = Obj() with (obj) { objMethod1() objMethod2() } 但有没有办法做到这一点 val obj = with(Obj()) { objMethod1() objMethod2() } 要解决一种常见情况,即创建一个对象并对其调用一些方法来初始化其状态。当然,可以使用stdlib函数,该函数 以此值作为其接收器调用指定的功能块,并返回此值 您可以在许多其他Kotlin习惯用法中找到它。您的第二
val obj = Obj()
with (obj) {
objMethod1()
objMethod2()
}
但有没有办法做到这一点
val obj = with(Obj()) {
objMethod1()
objMethod2()
}
要解决一种常见情况,即创建一个对象并对其调用一些方法来初始化其状态。当然,可以使用stdlib函数,该函数
以此
值作为其接收器调用指定的功能块,并返回此
值
您可以在许多其他Kotlin习惯用法中找到它。您的第二个示例也很有效-只需确保lambda返回正确的值(最后一个表达式的结果是
with
表达式的返回值):
AFAIR,您可以使用
val obj=obj()。应用{…}
public inline fun <T> T.apply(block: T.() -> Unit): T { block(); return this }
val obj = Obj().apply {
objMethod1()
objMethod2()
}
val obj = with(Obj()) {
objMethod1()
objMethod2()
this // return 'this' because we want to assign the new instance to obj
}