h0c*_*355 -2 go visual-studio-code goimports
我在网络https://github.com/deckarep/golang-set中发现了一个非常有用的 Go 库,它试图将 Python 集移植到 Go。
感谢 Visual Studio Code,我最终通过导入库import "github.com/deckarep/golang-set"并在代码中调用函数来使其正常工作:
mySet := mapset.NewSet()
Run Code Online (Sandbox Code Playgroud)
VS Code 自动识别别名并替换 import 指令:
import mapset "github.com/deckarep/golang-set"
Run Code Online (Sandbox Code Playgroud)
然而,作为一个发现这些别名令人困惑的人,我试图将其删除,但这样做后,VSCode 将其从 import 语句和我的代码中删除了。VS Code 然后告诉我:
未声明的名称:NewSet编译器(UndeclaredName)
NewSet(...)的包名称也是package mapset。所以我想我可以简单地删除它。但这不起作用。
我还尝试与其他第 3 方包类似地工作,并通过存储库的名称调用函数:
mySet := golang-set.NewSet()
Run Code Online (Sandbox Code Playgroud)
这也会导致错误。由于连字符的原因,这里不可能删除别名,或者我正在监督其他事情?
这里有几件事:
mapset是包名。您可以通过查看包源代码来了解这一点。
虽然在这种情况下,从语言的角度来看,导入别名并不是严格需要的,但为了清楚起见,添加了它,因为包名称 ( mapset) 与导入路径 ( ) 不匹配golang-set。如果导入语句中没有别名,就无法知道如何引用包。这就是为什么它的存在很重要。
您不能用作golang-set导入名称,因为-导入别名中不允许使用该字符。但是,如果您确实愿意,您可以golang_set通过显式提供此别名作为别名来使用或类似:
import golang_set "github.com/deckarep/golang-set"
Run Code Online (Sandbox Code Playgroud)
请注意,这违反了命名约定,因为包_名称中不应包含字符。但它应该仍然有效。
最佳实践是仅用作mapset别名。它是所有可用选项中最不容易混淆的(这就是它被自动选择的原因)。
| 归档时间: |
|
| 查看次数: |
1956 次 |
| 最近记录: |