Fork me on GitHub

Go多变量赋值

Go语言支持一次定义多个变量,同时也支持多个变量赋值。

例如:

1
var  x , y = "abc", 100

多变量赋值

原则1:要优先计算所有相关值,然后再从左到右依次赋值

1
2
3
data , i := []int{1,2,3}, 1
i , data[i] = 2, 100
fmt.Println(i, data)

输出结果:

1
2 [1,100,3]

i本身的值为1,在被赋值为2之前,data[i] -> data[1] 优先,所以i=2, data[1] = 100

原则2:要优先计算出所有右值,然后再从左到右依次赋值

1
2
3
x, y := 1, 2
x, y = y+3, x+2
println(x,y)

输出:

1
5,3
您的鼓励是我持之以恒的动力