Tag: 这个

编写一个在初始化程序中提供自引用的Kotlin util函数

我试图从另一个问题的答案概括我的黑客。 它应该提供一种方法来引用一个尚未在其构造器中构造的值(当然,不是直接的,而是在lambda表达式和对象表达式中)。 我现在所拥有的: class SelfReference<T>(val initializer: SelfReference<T>.() -> T) { val self: T by lazy { inner ?: throw IllegalStateException("Do not use `self` until initialized.") } private val inner = initializer() } fun <T> selfReference(initializer: SelfReference<T>.() -> T): T { return SelfReference(initializer).self } 它的作品,看到这个例子: class Holder(var x: Int = 0, val action: () -> Unit) […]

Kotlin:一个默认的ish setter,返回“this”

我知道这不是“严格的设计模式”等等等等,但… 在Kotlin中,有没有办法创建一个返回“ this ”的“default-ish”setter,就像 var foo:Bar = Something() set(f:Bar) { foo = f return this // Alas, that would not compile because Setter returns Unit } 当setter返回this时很方便,因为不需要声明一个Builder就可以创建一个Builder模式。 这只是短暂的做法: BlahBlah().setFoo(x).setFoo2(y)… 比 BlahBlah.Builder().setFoo(x)…. 要么 var b = BlahBlah() b.setFoo(x) b.setFoo2(y) … 管他呢 而且,如果一个二传手返回Unit ,为什么不this呢?