请教一个问题


#1

var a =1
var b=(a++)

把他们打印出来,a=2,b=1.
请问,为什么是这样?不应该是小括号里的a++先计算,此时a=2,然后再赋值给b吗?


#2

你换成 ++a 再跑一遍

多实验几次就懂啦


#4

我知道。。。。。。
++a是先自增 再赋值。
a++是先赋值再自增。
但是我这边是加了小括号啊,小括号的优先级不是最高吗?这样子的话它岂不是应该先自增,再赋值?


#5

无论是不是加 括号
表达式 a++ 的值 是 1, 将a ++ 整个表达式的值赋值给 b, 而不是 a 的值


#6

原来如此。这下我明白了,非常感谢。
不过感觉这个自增自减非常会误导人啊,特别是我这种新手,分不清整体和a的值是两个值。
不过还是非常感谢。


#7

自增自减是可以追溯到上古时代的神器~


京ICP备16022265号-2 Kotlin China 2017 - 2018