6
的声明和初始化中去的速记是如何在lang中评估声明和初始化的速记?
var a, b, c = 1 , 2, 3
相当于声明和初始化(按specs)的下列方式
a:=1 b:=2 c:=3
var a int var b int var c int a=1 b=2 c=3
但我没有收到在下面的代码中发现的问题的答案:
package main
import "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 + b
即1+1
= 2,但评估其给予1.
这里是两个工作代码,你可以观察到的区别的操场链接。
我知道我失去了一些东西去理解,尤其是在同一个变量参与表达式速记表达基本上是如何评估的。
但是,哪里是适当的文件来引用。任何人都可以帮忙吗?