gpt4 book ai didi

go - 包含连字符的包名

转载 作者:行者123 更新时间:2023-12-01 22:42:29 26 4
gpt4 key购买 nike

我在理解为什么我的代码在包中有连字符时会报错的问题。
例如如果我有一个包名 foo-bar 并且我声明了这个包名

package foo-bar

foo-bar/config.go:1:13: expected ';', found '-'
那为什么 Go 编译器会报错呢?这是否意味着我们不应该在 go 包名称中使用连字符?
由于有很多 repo 在包名中使用了连字符,我做错了什么吗?

最佳答案

我们可以看到from the Go spec包名必须是有效的标识符:

PackageName = identifier .


我们可以进一步 read有效标识符定义为:

identifier = letter { letter | unicode_digit } .


所以包名可能只包含字母和数字。 -不允许使用字符。
我们可以 further read作为一种特殊情况,下划线字符( _ )被定义为一个字母,用于 Go 标识符:

The underscore character _ (U+005F) is considered a letter.


所以你可以替换 -_如果您愿意,可以为您的包名称。
但是,请考虑不要这样做,因为它被认为是不惯用的。有关 Go 中包命名的建议,请阅读 Effective Go 部分在 package names ,或阅读 Go 博客在 Package Names 上的帖子.

关于go - 包含连字符的包名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63446528/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com