为什么暂停Kotlin不支持的运算符fun getValue?

时间:2019-09-23 16:41:43

标签: kotlin kotlin-coroutines

为什么以下签名会导致Unsupported [suspend operator "getValue"]编译错误?

suspend operator fun getValue(thisRef: Any?, property: KProperty<*>): T

是因为任何技术限制吗?

1 个答案:

答案 0 :(得分:5)

getValue运算符用于实现val的getter,没有suspend val这样的东西-只是普通的val

suspend fun不能直接从普通函数(如getter的实现)中调用,因此,getValue不能用于其预期的目的。 Kotlin通过尝试创建suspend operator fun getValue时出现编译错误来警告您。