go中声明和初始化的简写是var a, b, c = 1 , 2, 3 等效于以下声明和初始化方式(根据规范)a:=1 b:=2 c:=3var a int var b int var c int a=1 b=2 c=3但我没有得到以下代码中发现的问题的答案:package mainimport "fmt"func main() { var a int = 0 var b int = 1 fmt.Println("init a ",a) fmt.Println("init b ",b) a, b = b, a+b fmt.Println("printing a after `a, b = b, a+b`",a) fmt.Println("printing b after `a, b = b, a+b`",b) }输出应该是:printing a after 'a, b = b, a+b' 1 printing b after 'a, b = b, a+b' 2 由于 的值b是用a + bie 1+1= 2计算的。但它给出了 1。这是两个工作代码的操场链接,您可以在其中观察差异。a,b = b, a+ba=b, b=a+b我知道我缺少一些需要理解的东西,基本上是如何评估速记表达式,尤其是当表达式中涉及相同的变量时。但是在哪里可以参考适当的文档。有人可以帮忙吗?
- 1 回答
- 0 关注
- 204 浏览
添加回答
举报
0/150
提交
取消