go中聲明和初始化的簡寫是var a, b, c = 1 , 2, 3 等效于以下聲明和初始化方式(根據(jù)規(guī)范)a:=1 b:=2 c:=3var a int var b int var c int a=1 b=2 c=3但我沒有得到以下代碼中發(fā)現(xiàn)的問題的答案: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) }輸出應(yīng)該是:printing a after 'a, b = b, a+b' 1 printing b after 'a, b = b, a+b' 2 由于 的值b是用a + bie 1+1= 2計(jì)算的。但它給出了 1。這是兩個(gè)工作代碼的操場鏈接,您可以在其中觀察差異。a,b = b, a+ba=b, b=a+b我知道我缺少一些需要理解的東西,基本上是如何評(píng)估速記表達(dá)式,尤其是當(dāng)表達(dá)式中涉及相同的變量時(shí)。但是在哪里可以參考適當(dāng)?shù)奈臋n。有人可以幫忙嗎?
- 1 回答
- 0 關(guān)注
- 222 瀏覽
添加回答
舉報(bào)
0/150
提交
取消