在 Go 中,CamelCase 或 Semi-CamelCase 中哪种命名函数的方式?

新手上路,请多包涵

我想在 Go 中编写一个函数,将文档插入 MongoDB 数据库的集合中。哪种方式命名函数更好,

  • writeToMongoDB
  • WriteToMongoD

第二种是CamelCase,虽然我看到有人用第一种的风格,所以我不确定哪个更合适。谢谢。

原文由 Tim 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 591
1 个回答

句法

在 Go 中,这不是样式问题,而是语法问题。

导出的名称(即可以从除定义它们的包之外的包中使用的标识符)以大写字母开头。因此,如果你的方法是你的公共 API 的一部分,它应该被写成:

WriteToDB

但如果它是内部辅助方法,则应这样写:

writeToDB

与使用关键字定义导出性( externpublic 等)相比,这样做的好处是,将其作为名称的一部分可确保在任何地方使用标识符可以判断它是否被导出,而不必找到它的定义位置(查看定义是否包含关键字)。

另请参阅: 规范中的 导出标识符

国际化

因为 Go 是 UTF-8 编码的,并且支持任何在标识符名称中带有字母或数字属性的 Unicode 字符,所以在没有大小写概念的语言环境中,一些人可能无法创建导出的方法(默认是非导出的)。在这种情况下(双关语),通常在标识符前加上 X 以指示导出。例如: X日本語

另请参阅: Unicode 标识符怎么了? 从常见问题解答。

风格

就一般风格而言,总是使用驼峰式大小写(除了第一个字母,如前所述)。这包括常量、函数和其他标识符。因此,例如(导出的)常量列表可能如下所示:

 const (
    StateConnected = iota
    StateError
    StateDone

    internalStateMask = 0x2
)

此外,缩写总是以相同的大小写书写,因此您可以编写以下内容之一:

 dbWrite
writeDB

而不是 writeDbDbWrite

原文由 Sam Whited 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏