如何覆盖go语言中嵌套包中的变量?

我如何覆盖 go from package 中的变量?


例如:


文件1.go


package A


import "A/B"


var Arg1 = "Hello"

文件2.go


package A/B


var Arg1 = "World"  

如果 arg1 存在于 file2.go 中,如何覆盖 file1.go 中的 arg1?


阿波罗的战车
浏览 248回答 3
3回答

慕桂英3389331

您是否正在尝试做这样的事情,例如,特定位置(美国)(如果存在)覆盖一般位置(世界)?// file A/B.gopackage Bvar location = "USA"func Location() string {    return location}// file A.gopackage Aimport "A/B"var location = "World"func Location() string {    loc := B.Location()    if len(loc) == 0 {        loc = location    }    return loc}// file main.gopackage mainimport (    "A"    "fmt")func main() {    fmt.Println("Hello,", A.Location())}输出:Hello, USA如果没有,请提供一个更好、更具体的示例来说明您正在尝试做什么。

慕后森

在这种情况下,我不确定您所说的“覆盖”是什么意思。(另外让我假设 file1.go 是“包 a”而 file2.go 是“包 b”)如果您要访问Arg1,在包“b”内/从包“a”中定义,则例如:// In package "a"x = Arg1    // references a.Arg1y = b.Arg1  // references b.Arg1但是,这里没有发生类似覆盖的事情。在包“a”中,aArg1和 bArg1都可以作为不同的实体访问;后者通过强制限定符“b”。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go