初始化後全局錯誤變量恐慌? 初始化全局錯誤變量時,它可能會在同一軟件包中顯示為函數時。 This discrepancy arises from a misunderstanding of variable scoping.
In your first example, you use := to initialize both f and loadErr within the main function:
func main() { f, loadErr := os.Open("asdasd") if loadErr != nil { checkErr() } if f != nil { fmt.Println(f.Name()) } }In your second example, you use = to set the value of loadErr to the error returned by os.Open():func main() { _,err:= os.open(“ asdasd”) loaderr = err 如果loaderr! = nil { checkerr() } }
無意中創建陰影全局變量的本地變量,在分配值之前明確聲明全局變量很重要。在第一個示例中,您可以通過移動其定義來將LOADERR聲明為主函數之外的全局變量:[&&&&&&&&&&&&&&&&&&var loaderr error func main(){ _,loaderr = os.open(“ asdasd”) 如果loaderr! = nil { checkerr() } 如果f! = nil { fmt.println(f.name()) } } [&& && &&&& && && &&華
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3