Kotlin 操作员分配

Kotlin Operator-Assignment

我注意到 Kotlin 运算符赋值有一些有趣的行为

var selectedIndex = 0
selectedIndex += selectedIndex

调试后,选择的索引仍然等于0

当改为

selectedIndex = selectedIndex + 1

Android Studio 抱怨使用运算符赋值,但它按预期运行。这到底是怎么回事??

科特林版本:1.2.31

谢谢

var selectedIndex = 0
selectedIndex += selectedIndex

这可以重写为:

var selectedIndex = 0
selectedIndex += 0 //as far as selectedIndex is 0

也许您正在考虑增量:

var selectedIndex = 0
selectedIndex++

按预期递增 selectedIndex = 1

如果你可能会问什么是运算符赋值抱怨。您可以将光标指向此行并按 Alt+Enter 代码将自动替换为以下内容:

selectedIndex += 1

当你有类似

的东西时,这很有用
selectedIndex = selectedIndex + <some calculations/constant>

等价于:

selectedIndex += <some calculations/constant>

相同作业的更短形式