我们可以做到
val obj = Obj()
with (obj) {
objMethod1()
objMethod2()
}但是有没有办法做到这一点呢?
val obj = with(Obj()) {
objMethod1()
objMethod2()
}来解决一种常见的情况,即创建一个对象并在其上调用几个方法来初始化其状态。
发布于 2017-01-05 22:14:32
您的第二个示例也适用-只需确保lambda返回正确的值(最后一个表达式的结果是with表达式的返回值):
val obj = with(Obj()) {
objMethod1()
objMethod2()
this // return 'this' because we want to assign the new instance to obj
}https://stackoverflow.com/questions/40182310
复制相似问题