JAVA、python、Go的複製語句

一、JAVA的自增、自減語法

      //對自增(減)變量來說,"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的自增、自減語法

Python中是沒有++和--的。那麼要實現自增和自減的話,可以使用如下操作:

a = a + 1
或
a += 1

原因是python中的數字類型是不可變數據。也就是數字類型數據在 內存 中是不會發生改變,當變量值發生改變時,會新申請一塊內存賦值爲新值,然後將變量指向新的內存地址。
所以對於python來說,是沒有自增一說的。

>>> a = 10
>>> id(a)
140530470127960
>>> a += 1
>>> id(a)
140530470129080

+= 是改變變量,相當於重新生成一個變量,把操作後的結果賦予這個新生成的變量。
++ 是改變了對象本身,而不是變量本身,即改變數據地址所指向的內存中的內容。

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的自增、自減語法

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

示例:

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

fmt.Println(a) // 2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章