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.
這裏是兩個工作代碼,你可以觀察到的區別的操場鏈接。
我知道我失去了一些東西去理解,尤其是在同一個變量參與表達式速記表達基本上是如何評估的。
但是,哪裏是適當的文件來引用。任何人都可以幫忙嗎?