猿问

在 Go 中从本地变量中消除包名称的歧义

有没有一种好方法来消除包名和局部变量之间的歧义?如果不需要,我宁愿不重构导入名称或变量名称。举个例子...


import "path"


func foo() {

    path := "/some/path"

    // Disambiguate here

    path.Join(path, "/some/other/path")

}


慕桂英4014372
浏览 213回答 2
2回答

动漫人物

我能想到的还有两个额外的选择:存储path.Join在变量中制作path一个实现的类型Join第一个很简单。而不是在声明之前path.Join存储path.Join在变量中path并改为调用它(play):join := path.Joinpath := "/some/path"path = join("/some/other/path")第二个有点复杂,我认为您实际上不应该这样做,但这是一种可能性(play):type Path stringfunc (p Path) Join(elem ...string) string {    return path.Join(append([]string{string(p)}, elem...)...)}fmt.Println("Hello, playground")path := "/some/path"path = Path(path).Join("/some/other/path")
随时随地看视频慕课网APP

相关分类

Go
我要回答