當前位置:成語大全網 - 書法字典 - Python、Ruby等語言為什麽拋棄自增運算符?

Python、Ruby等語言為什麽拋棄自增運算符?

在Python中,整數是不可變的類型。對象創建後,其值不能更改。

在Java或C等語言中,++做的就是讓這個變量的值+1,比如a = 1;A++的意思是用原來的值+1代替A原來的內存區域所表示的值。在Python中,壹旦創建了整數對象,它的值就不能更改。所以無法實現自增自減操作。

-

更新壹下。i += 1和i = i+1有什麽區別?大多數情況下,妳可以認為這兩種寫法是等價的。但是在實現上還是有壹些區別的。我們以塑料變量A為例。兩種編寫方法生成的字節碼如下:

i += 1:

6 LOAD_FAST 0 (a)

9負載常數1 (1)

12原地_添加

13 STORE_FAST 0 (a)

i = i + 1

6 LOAD_FAST 0 (a)

9負載常數1 (1)

12二進制_加法

13 STORE_FAST 0 (a)

如妳所見,它在底層調用中仍然是不同的。體現在Python語言的實現中,__add__對應+運算,而__iadd__對應+=運算。