Go中未导出类型名称的命名约定

Go中未导出类型名称的命名约定,go,naming-conventions,Go,Naming Conventions,我喜欢用Pascal大小写来命名我的类型——以大写字母开头。在Go中,这意味着名称已导出 为了避免导出,我开始在类型名称前面加上undercsore前缀,而不是第一个字母的小写 例如:代替 type Column struct{},我使用type\u Column struct{}来避免导出 我还没有看到这个命名方案的使用,但也没有找到任何理由不使用它 既然golint毫无怨言地接受了它,我想这样可以吗 结论:根据答案和评论,我决定使用小写类型名称。我建议优先使用列,而不是\u列,因为标准库使用

我喜欢用Pascal大小写来命名我的类型——以大写字母开头。在Go中,这意味着名称已导出

为了避免导出,我开始在类型名称前面加上undercsore前缀,而不是第一个字母的小写

例如:代替
type Column struct{}
,我使用
type\u Column struct{}
来避免导出

我还没有看到这个命名方案的使用,但也没有找到任何理由不使用它

既然
golint
毫无怨言地接受了它,我想这样可以吗


结论:根据答案和评论,我决定使用小写类型名称。

我建议优先使用
,而不是
\u列
,因为标准库使用的样式遵循命名约定

这在中没有明确说明,但基于通常不鼓励使用下划线这一事实,我认为使用
\u列
充其量也不是惯用语。

有惯用位和工具强制位

坚持这些标准的社区使得代码库相当容易被其他人阅读和理解

我发现这是围棋最好的特点之一

当然,频道和goroutines很不错。

轻松阅读代码库通常更有价值。

这里唯一符合OK的定义是“goling毫无怨言地接受它”。跟随围棋的用法,而不是试图用另一种语言复制你所做的事情,怎么样?在罗马时,要像罗马人那样做!只需使用小写名称。为什么不使用
?因为这些名字都没有公布,这其实并不重要,但我认为没有人会喜欢
\u Column
而不是
Column
。更不用说当所有未报告的标识符都不是以相同的符号开头时,自动完成更容易。不,这不好,因为它非常丑陋、不必要和误导。我只是部分同意关于丑陋、自动完成、从其他语言复制等的论点,但我喜欢并同意格泽戈尔的评论:在罗马时,要像罗马人那样做因为其他的论点或多或少都是一些软弱的观点,包括我自己的观点,我将遵循以下建议:)