为了账号安全,请及时绑定邮箱和手机立即绑定

Go 中的同时变量赋值不同于单个变量赋值

Go 中的同时变量赋值不同于单个变量赋值

Go
墨色风雨 2021-12-20 16:47:56
我的印象是,尽管语法不同,但下面的函数 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

}


查看完整回答
反对 回复 2021-12-20
  • 1 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信