我不太了解短期作業的具體目的,為什么這樣做:x:= 10當這也是可能的時:var x = 10是否有任何特定的用例,其中短作業更方便
3 回答

一只斗牛犬
TA貢獻1784條經驗 獲得超2個贊
if x, err := fn(); err != nil {
// do something
}
在上述情況下,變量被限制在if語句內。如果您嘗試err在if語句之外進行訪問,則該語句將不可用。同樣適用于x。還有的地方維護的范圍,想這可能是有用的各種情況,但我要說的使用:=是在給定的風格就像上面if,switch,for。
對于其他一些背景,var還可以進行分組,就像使用一樣import。
var (
y = 1
z = 2
)
這將varvs的用例推得:=更遠。

一只萌萌小番薯
TA貢獻1795條經驗 獲得超7個贊
我認為,這:=主要是作為一種方便的語法來接收函數調用的結果,在這種情況下,人們經常希望在聲明新變量的同時重用現有變量:
x, err := func1()
if err != nil {
fmt.Fatal(err)
}
y, err := func2()
if err != nil {
fmt.Fatal(err)
}
上面的代碼之所以編譯:=,是因為只要創建了至少一個新變量,就可以列出現有變量。嘗試用替換y, err :=,var y, err =您將發現它無法編譯。
- 3 回答
- 0 關注
- 203 瀏覽
添加回答
舉報
0/150
提交
取消