为什么分配不是陈述

我有以下代码:

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