我的印象是,尽管语法不同,但下面的函数 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 关注
- 106 浏览
添加回答
举报
0/150
提交
取消