首頁  >  文章  >  後端開發  >  在 Go 中隱藏時如何存取包級變數或常量變數?

在 Go 中隱藏時如何存取包級變數或常量變數?

Barbara Streisand
Barbara Streisand原創
2024-11-22 11:40:11823瀏覽

How to Access Package-Level or Constant Variables When Shadowed in Go?

在函數級變數上引用常數和包級變數

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn