图片是来自Swift游乐场的截图 - >左边的代码,右边的日志(如果你可以这样称呼它)。
我想我预计会发生的是第8行会导致1,因为,你知道,0 + 1 = 1
有人能解释这里发生了什么吗?
现在使用println
P.S。在你说了什么之前,我知道半冒号现在没用了,这是习惯,因为我今天决定学习来自Obj-C的Swift。
答案 0 :(得分:6)
从这里开始:What is the difference between ++i and i++?
++我将增加i的值,然后返回递增的值。
i ++将增加i的值,但返回我在增加之前所持有的原始值。
操场会打印该行的返回值,在i++
情况下,它会返回i
的原始值,因此将其打印出来, 然后递增它。
答案 1 :(得分:0)
++i
称为预增量运算符。如果在语句中使用,则会将i
的值增加1
,然后使用递增的值来评估该语句。
int i = 0;
println(++i); /* output 1 */
println(i); /* output 1 */
b++
称为后增量运算符。如果在语句中使用将使用当前值b
,并且在评估语句后,它会将b
的值增加1
。
int b = 0;
println(b++); /* output 0 */
println(b); /* output 1 */
请注意,当您使用pre和post增量运算符时,它们本身使用的行为方式相同
int y = 0;
int z = 0;
++y;
z++;
println(y); /* output 1 */
println(z); /* output 1 */