为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
慕桂英4014372 2021-07-01 10:01:18
有没有一种好方法来消除包名和局部变量之间的歧义?如果不需要,我宁愿不重构导入名称或变量名称。举个例子...import "path"func foo() {    path := "/some/path"    // Disambiguate here    path.Join(path, "/some/other/path")}
查看完整描述

2 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

我能想到的还有两个额外的选择:

  1. 存储path.Join在变量中

  2. 制作path一个实现的类型Join

第一个很简单。而不是在声明之前path.Join存储path.Join在变量中path并改为调用它(play):

join := path.Join


path := "/some/path"

path = join("/some/other/path")

第二个有点复杂,我认为您实际上不应该这样做,但这是一种可能性(play):


type Path string


func (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")


查看完整回答
反对 回复 2021-07-12
  • 2 回答
  • 0 关注
  • 212 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信