我正在研究Golang源代碼,我找到了代碼
var DefaultServeMux = &defaultServeMux
var defaultServeMux ServeMux
參考在定義之前使用,我寫了一個這樣的示例代碼,但出現錯誤:
func main(){
type ServeMux struct {
hosts string
}
var DefaultServeMux = &defaultServeMux
var defaultServeMux ServeMux
fmt.Printf("print [%s]\n", DefaultServeMux.hosts)
}
我有 undefined: defaultServeMux
我想知道代碼如何編譯成功?
uj5u.com熱心網友回復:
第一段代碼顯示了兩個包級變數宣告。包級變數宣告在main開始運行之前根據依賴項強加的順序進行評估。因此,在第一個片段中,defaultServeMux在 之前宣告和初始化DefaultServeMux。
當您在函式中宣告變數時,它們會按照定義的順序進行計算。因此,在第二個代碼片段中,在DefaultServeMux宣告的地方,defaultServeMux尚未定義。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/338491.html
標籤:走
上一篇:Golang除錯顯示一個~r2變數,我沒有在我的代碼中定義
下一篇:Golang通過Mux批量發布
