Go 03 多個變數同時賦值

2021-09-29 04:51:02 字數 948 閱讀 9224

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

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)

**說明如下:

Golang 多個變數同時賦值

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

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語言從入門到精通 多個變數同時賦值

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