在函數級變數上引用常數和包級變數
在Go 中,通常使用遮蔽來宣告變數或常數不同範圍內具有相同的名稱。雖然這很有用,但有時您需要引用原始常數或包級變數而不是函數級變數。
不幸的是,在 Go 中,不可能直接引用當存在同名的局部變數時,常數或包級變數。這是由於作用域的概念以及 Go 編譯器對局部變數的偏好而不是高階宣告。
要存取原始常數或包級變量,您需要使用替代技術。一種方法是在重新分配局部變數之前將值儲存在臨時變數中:
cname := name name = "Jobs" fmt.Println(name) // Prints "Jobs" fmt.Println(cname) // Prints "Yosua"
另一種方法是建立一個提供對常數或包級變數的存取的函數:
func getName() string { return name } name = "Jobs" fmt.Println(name) // Prints "Jobs" fmt.Println(getName()) // Prints "Yosua"
透過使用這些技術,您可以同時存取局部變數和原始常數或包級變數。然而,值得注意的是,這些解決方法可能並不總是最優雅或最有效的解決方案,應仔細考慮以避免程式碼中的命名衝突。
以上是在 Go 中隱藏時如何存取包級變數或常量變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!