Android 本地委派属性和内联属性不支持扩充分配和增量
如标题所示:Android 本地委派属性和内联属性不支持扩充分配和增量,android,kotlin,Android,Kotlin,如标题所示: 本地委托属性和内联属性不支持“增大分配”和“增量”-我从以下代码中得到了这一点: var timer by someDelegate { } timer += someOtherValue 它在半小时前就编译好了。清理项目和重置Android Studio没有帮助。这是因为此功能尚未实现,它不是一个bug,:)。以下是Kotlin 1.1.3中的源代码: if (stackValue instanceof Delegate) { //TODO need to suppor
本地委托属性和内联属性不支持“增大分配”和“增量”
-我从以下代码中得到了这一点:
var timer by someDelegate { }
timer += someOtherValue
它在半小时前就编译好了。清理项目和重置Android Studio没有帮助。这是因为此功能尚未实现,它不是一个bug,:)。以下是Kotlin 1.1.3中的源代码:
if (stackValue instanceof Delegate) {
//TODO need to support
throwUnsupportedComplexOperation(((Delegate) stackValue).variableDescriptor);
}
为什么属性可以使用
+=
,这是因为委托
由getter
/setter
包装,这意味着它在客户端代码中是不可见的。您可以尝试将其替换为timer=timer+someOtherValue
。提供问题的更多上下文。我确认它对我不起作用,以太应该是正常的,因为未定义plusasingned
时,这样的表达式被转换为'timer=timer+someOtherValue@voddan否。plusAssingned
用于不可变变量(如果plus
存在)。换句话说,+=
将始终使用带有可变变量的plus
,当plus singned
和plus
都存在时。你可以在这里进一步看到:啊,是的,我们看到了,但我仍然想知道为什么它停止工作了(工作了一周左右)-或者,为什么它一开始就工作了@安特克:也许你上周使用了最新版本的科特林。这怎么可能呢?自7月13日以来,项目中使用的版本一直稳定在1.1.3-2,我不记得有任何更新notifications@Antek我肯定你不能,也许你把它变成一个属性而不是一个局部变量。最新版本的kotlin也不支持这一点:计算机很怪异(: