Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 本地委派属性和内联属性不支持扩充分配和增量_Android_Kotlin - Fatal编程技术网

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也不支持这一点:计算机很怪异(: