JAVA、python、Go的複製語句

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);

2、python的自增、自減語法

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 。內存

3、go的自增、自減語法

在Go中 ++ -- 只能做爲語句而非表達式。it

示例:class

a := 1
a ++  // 注意:不能寫成 ++ a 或 -- a 必須放在右邊使用
// b := a++ // 此處爲錯誤的用法,不能寫在一行,要單獨做爲語句使用

fmt.Println(a) // 2
相關文章
相關標籤/搜索