1、JAVA的自增、自减语法python
//对自增(减)变量来讲,"a++"和"++a"是同样的 int a = 100; System.out.println("a:" + a); a++; System.out.println("a:" + a); //输出自加后的结果:101 int c = a++; //先赋值再自加,c的结果:101,a的结果102 System.out.println("a:"+a+" c:" + c); c = a + 1; //这个是正常的运算 System.out.println("a:"+a+" c:" + c); int d = ++a; //先自加再赋值,d的结果为103,a的结果为103 System.out.println("a:"+a+" d:" + d);
Python中是没有++和--的。那么要实现自增和自减的话,可使用以下操做:ide
a = a + 1 或 a += 1
缘由是python中的数字类型是不可变数据。也就是数字类型数据在 内存 中是不会发生改变,当变量值发生改变时,会新申请一块内存赋值为新值,而后将变量指向新的内存地址。
因此对于python来讲,是没有自增一说的。性能
>>> a = 10 >>> id(a) 140530470127960 >>> a += 1 >>> id(a) 140530470129080
+= 是改变变量,至关于从新生成一个变量,把操做后的结果赋予这个新生成的变量。
++ 是改变了对象自己,而不是变量自己,即改变数据地址所指向的内存中的内容。code
int理论上是每次赋值都建立一个新对象的。可是因为使用频繁,为了提高性能避免浪费,全部 python 有个 整数池,默认 [-5, 256] 的数字都属于这个整数池,这些每次赋值的时候,是取得池中的整数对象。可是其余的除外,以下:对象
>>> a = 5 >>> b = 5 >>> id(a) 140530470128360 >>> id(b) 140530470128360 >>> a is b True >>> c = 257 >>> d = 257 >>> id(c) 140530470136432 >>> id(d) 140530470136408
有时候在 Python 中看到存在 ++i 这种形式,这其实不是自增,只是简单的表示正负数的正号而已。正正得正,负负得正,因此 ++i 和 --i 都是 i 。内存
在Go中 ++ 和 -- 只能做为语句而非表达式。it
示例:class
a := 1 a ++ // 注意:不能写成 ++ a 或 -- a 必须放在右边使用 // b := a++ // 此处为错误的用法,不能写在一行,要单独做为语句使用 fmt.Println(a) // 2