为什么以下签名会导致Unsupported [suspend operator "getValue"]
编译错误?
suspend operator fun getValue(thisRef: Any?, property: KProperty<*>): T
是因为任何技术限制吗?
答案 0 :(得分:5)
getValue
运算符用于实现val
的getter,没有suspend val
这样的东西-只是普通的val
。
suspend fun
不能直接从普通函数(如getter的实现)中调用,因此,getValue
不能用于其预期的目的。 Kotlin通过尝试创建suspend operator fun getValue
时出现编译错误来警告您。