复合词的文件名约定?

ssc*_*eck 33 naming-conventions go

Go to name包含复合词的文件中是否有一个共同的约定?

例如,我编写了一个加权联盟查找算法的实现,并将其放入自己的源文件中.我应该如何命名文件?

// mixed case
weightedUnionFind.go

// lower case
weightedunionfind.go

// snake case
weighted_union_find.go
Run Code Online (Sandbox Code Playgroud)

我发现只有关于包名称的约定和关于文件命名约定的以下问题,Go中的文件名的约定是什么?.

因此,我通过Go包源文件进行了深思熟虑,最终得到了weightedunionfind.go.

eli*_*rar 37

虽然它没有在https://golang.org/doc/code.html#Overview中正式指定- snake_case是大多数标准库和大多数第三方库的约定.

  • std还有一个很大的组合.库.源文件名通常保持较短,所以在你的情况下我倾向于在`weightedunion`包中称它为`find.go`. (5认同)
  • 谢谢。在标准库中,我只找到了很少的示例,并且没有使用下划线,例如`ast / commentmap.go`。我假设下划线仅用于测试和特定于平台的实现。 (3认同)
  • 我不确定这是正确的答案;当涉及条件编译https://dave.cheney.net/2013/10/12/how-to-use-conditional-compilation-with-the-go-build时,`_在golang中确实有特殊含义。 -工具。烤肉串案似乎也不受欢迎。剩下的首选是“ weightedunionfind.go”。并不个人喜好,但在使用体面的IDE时不会感到困扰。很像混合情况,但是我没有看到很多其他例子。@elithrar的评论很详细;这个想法是当您想长时间使用它时,更好地使用软件包。 (2认同)