为什么分配不是陈述
我有以下代码:
class Presenter { private var view : View? = null fun attachView(view: View) = this.view = view // error: Assignment is not a statement fun detachView() = view = null // error: Assignment is not a statement }
我知道我可以写:
class Presenter { var view : View? = null }
稍后在代码中调用presenter.view = View()
和presenter.view = null
而不是attachView
/ detachView
。 但是我认为这是不太可读的。
那么为什么我不能在Kotlin中使用任务作为表达体呢? 为什么不分配只是Unit
类型的声明?
无论我们喜不喜欢,这只是语言创造者所做的设计决定。 看到这个讨论更多的细节:
https://discuss.kotlinlang.org/t/assignment-not-allow-in-while-expression/339