在提供的Go 程式碼中,在main 函數中,定義了一個局部變數名稱,它遮蔽了常數或具有相同名稱的包級變數。這可能會導致混亂和不正確的行為。
在 Go 中,當在函數中宣告新變數時,它優先於在函數中定義的任何其他同名變數。更高級別(例如,在包級別範圍內)。這稱為變數遮蔽。
要在主函數中引用常數或包級變數名稱,我們不能直接使用識別符名稱,因為它表示函數- 層級變數。相反,我們可以使用以下方法之一:
const name = "Yosua" func main() { localName := name name := "Jobs" fmt.Println(name) // Jobs fmt.Println(localName) // Yosua }
const name = "Yosua" func getName() string { return name } func main() { name := "Jobs" fmt.Println(name) // Jobs fmt.Println(getName()) // Yosua }
如果使用 var 而不是 const 聲明包級變量,則可以在函數內進行隱藏和重新分配。在這種情況下,使用上述方法之一可確保保留原始值。
以上是當 Go 中的局部變數隱藏時,如何存取常數和包級變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!