在提供的 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中文网其他相关文章!