如何在 Go 中删除不需要的导入别名?
How can I remove an unwanted import alias in Go?
我发现 Web https://github.com/deckarep/golang-set 中非常有用的 Go 库试图将 Python 设置为 Go。
感谢 Visual Studio 代码,我最终通过导入库 import "github.com/deckarep/golang-set"
并在我的代码中调用一个函数来让它工作:
mySet := mapset.NewSet()
VS Code 自动识别别名并替换导入指令:
import mapset "github.com/deckarep/golang-set"
然而,作为一个发现这些别名令人困惑的人,我试图将其删除但这样做,VSCode 将其从导入语句和我的代码中删除。然后 VS Code 告诉我:
undeclared name: NewSet compiler(UndeclaredName)
来自 NewSet(...) 的软件包名称也是 package mapset
。所以我想我可以简单地删除它。但是没用。
我也尝试过类似于其他第 3 方包的工作,并通过存储库的名称调用函数:
mySet := golang-set.NewSet()
这也会导致错误。由于连字符的缘故,这里不可能删除别名,还是我在监督其他事情?
这里有几件事:
mapset
是包名。您可以通过查看 package source code.
来了解这一点
虽然从语言的角度来看,在这种情况下,导入别名并不是严格需要的,但为了清楚起见,添加了它,因为包名称 (mapset
) 与导入路径不匹配(golang-set
)。如果导入语句中没有别名,就无法判断包是如何被引用的。这就是为什么它在那里很重要。
您不能使用 golang-set
作为导入名称,因为导入别名中不允许使用 -
字符。但是,如果你真的想要,你可以使用 golang_set
或类似的,通过明确提供这个作为你的别名:
import golang_set "github.com/deckarep/golang-set"
请注意,这违反了命名约定,因为包名称中不应包含 _
个字符。但它应该仍然有效。
最佳做法是使用 mapset
作为别名。它是所有可用选项中最不容易混淆的(这就是它被自动选中的原因)。
我发现 Web https://github.com/deckarep/golang-set 中非常有用的 Go 库试图将 Python 设置为 Go。
感谢 Visual Studio 代码,我最终通过导入库 import "github.com/deckarep/golang-set"
并在我的代码中调用一个函数来让它工作:
mySet := mapset.NewSet()
VS Code 自动识别别名并替换导入指令:
import mapset "github.com/deckarep/golang-set"
然而,作为一个发现这些别名令人困惑的人,我试图将其删除但这样做,VSCode 将其从导入语句和我的代码中删除。然后 VS Code 告诉我:
undeclared name: NewSet compiler(UndeclaredName)
来自 NewSet(...) 的软件包名称也是 package mapset
。所以我想我可以简单地删除它。但是没用。
我也尝试过类似于其他第 3 方包的工作,并通过存储库的名称调用函数:
mySet := golang-set.NewSet()
这也会导致错误。由于连字符的缘故,这里不可能删除别名,还是我在监督其他事情?
这里有几件事:
来了解这一点mapset
是包名。您可以通过查看 package source code.虽然从语言的角度来看,在这种情况下,导入别名并不是严格需要的,但为了清楚起见,添加了它,因为包名称 (
mapset
) 与导入路径不匹配(golang-set
)。如果导入语句中没有别名,就无法判断包是如何被引用的。这就是为什么它在那里很重要。您不能使用
golang-set
作为导入名称,因为导入别名中不允许使用-
字符。但是,如果你真的想要,你可以使用golang_set
或类似的,通过明确提供这个作为你的别名:import golang_set "github.com/deckarep/golang-set"
请注意,这违反了命名约定,因为包名称中不应包含
_
个字符。但它应该仍然有效。最佳做法是使用
mapset
作为别名。它是所有可用选项中最不容易混淆的(这就是它被自动选中的原因)。