我的印象是,盡管語法不同,但下面的函數 a 和函數 b 在邏輯上是等效的。但是,它們不是,我不明白它們之間的區別。在我看來,他們都在分配:x 對變量 z 的值,變量 x 的 y 值,以及變量 y 的 x+y 值。任何人都可以幫助澄清我對多變量賦值以及函數 a 和函數 b 之間的邏輯差異的誤解嗎?
1 回答

一只萌萌小番薯
TA貢獻1795條經驗 獲得超7個贊
package main
import "fmt"
func a() (int, int, int) {
x:=1
y:=2
z:=3
z = x
x = y
y = x+y
return x, y, z
}
func b() (int, int, int) {
x:=1
y:=2
z:=3
z, x, y = x, y, x+y
return x, y, z
}
func main() {
fmt.Println(a()) // prints 2 4 1
fmt.Println(b()) // prints 2 3 1
}
- 1 回答
- 0 關注
- 130 瀏覽
添加回答
舉報
0/150
提交
取消