從我規範的閱讀:Go中短變量聲明和長變量聲明之間的關閉範圍區別是什麼?
短變量聲明...是一個常規變量 聲明與初始化表達式,但沒有一個類型速記......
我原以爲兩者是相同的:
var f func()
f = func() {
...
}
和
f := func() {
...
}
但似乎他們不是。我試圖總結外函數內自遞歸函數,但這個工程:
func myOuter() {
var f func()
f = func() {
f()
}
f()
}
但是這不,說在內部函數undefined: f
。
func myOuter() {
f := func() {
f()
}
f()
}
那麼有什麼區別? 有沒有什麼辦法可以用短格式聲明來寫這個或者我必須把它寫出來?
謝謝Kissaki,我明顯粘貼了兩次錯誤的相同的東西。 – Joe 2012-07-08 13:25:17