我正在尝试找出如何在this
块中引用with
。
inline fun A.foo(bar: B, crossinline block: B.() -> Unit) {
with (bar) {
this@A.doSomething() // compile error, "unresolved reference @A"
block()
}
}
这是我的解决方法:
inline fun A.foo(bar: B, crossinline block: B.() -> Unit) {
val self = this
with (bar) {
self.doSomething() // okay, but ugly
block()
}
}
有更好的方法吗,为什么不起作用?