基本整数增量,带有意外结果

时间:2014-12-04 18:36:28

标签: ios swift swift-playground

图片是来自Swift游乐场的截图 - >左边的代码,右边的日志(如果你可以这样称呼它)。

我想我预计会发生的是第8行会导致1,因为,你知道,0 + 1 = 1

有人能解释这里发生了什么吗?

enter image description here

现在使用println

enter image description here

P.S。在你说了什么之前,我知道半冒号现在没用了,这是习惯,因为我今天决定学习来自Obj-C的Swift。

2 个答案:

答案 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 */