Golang 多個變數同時賦值

2022-04-11 10:13:46 字數 862 閱讀 5917

程式設計最簡單的演算法之一,莫過於變數交換。交換變數的常見演算法需要乙個中間變數進行變數的臨時儲存。用傳統方法編寫變數交換**如下:

var a int = 100

var b int = 200

var t int

t = a

a = b

b = t

fmt.println(a, b)

在計算機剛發明時,記憶體非常「精貴」。這種變數交換往往是非常奢侈的。於是計算機「大牛」發明了一些演算法來避免使用中間變數:

var a int = 100

var b int = 200

a = a ^ b

b = b ^ a

a = a ^ b

fmt.println(a, b)

這樣的演算法很多,但是都有一定的數值範圍和型別要求。

到了 go 語言時,記憶體不再是緊缺資源,而且寫法可以更簡單。使用 go 的「多重賦值」特性,可以輕鬆完成變數交換的任務:

var a int = 100

var b int = 200

b, a = a, b

fmt.println(a, b)

多重賦值時,變數的左值和右值按從左到右的順序賦值。

多重賦值在 go 語言的錯誤處理和函式返回值中會大量地使用。

例如,使用 go 語言進行排序時就需要使用交換,**如下:

type intslice int

func (p intslice) len() int

func (p intslice) less(i, j int) bool

func (p intslice) swap(i, j int)

**說明如下:

python 同時給多個變數賦值

python中可以同時給多個變數賦值,下面列舉了三種方法 assign values directly a,b 0,1 assert a 0 assert b 1 assign values from a list r,g,b red green blue assert r red assert g...

Go 03 多個變數同時賦值

程式設計最簡單的演算法之一,莫過於變數交換。交換變數的常見演算法需要乙個中間變數進行變數的臨時儲存。用傳統方法編寫變數交換 如下 var a int 100 var b int 200 var t int t a a b b t fmt.println a,b 在計算機剛發明時,記憶體非常 精貴 這...

Python 等式同時對多個變數的賦值說明

python可以利用等式對多個變數同時賦值,如 a,b,c 1,2,3。利用這個特性可以很簡潔的寫出變數交換的 a 1b 2a,b b,a執行上述 後 a 2,b 1。這樣就快速的完成了a,b變數之間的交換。下面解釋 執行過程 上述 執行到第三行,先計算等式右邊的b值,等式邊為 a,b 2,a。然後...