回答

收藏

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

技术问答 技术问答 272 人阅读 | 0 人回复 | 2023-09-12

我想在 Go在 中写一个函数,将文档插入 MongoDB 数据库集合。哪种方式更好地命名函数,- Z2 S4 a8 [8 e7 V! h& X* P
writeToMongoDB 或者0 @3 a# a; s+ c" r8 V: k- A
WriteToMongoD?
第二个是CamelCase,我看到有人用第一种风格,不知道哪个更合适。谢谢你。
2 t/ H& Y/ F) j( K% t2 A                                                                ' |7 B5 G$ i' r" ^: ^/ {: A
    解决方案:                                                                , @0 l/ T3 e0 n' z8 P1 J
                                                                语法在 Go 中,这不是风格问题,而是语法问题。) ]7 m# D% Y: n; M1 C: X
从大写字母开始导出的名称(即可以从定义包外使用的标识符)。所以,如果你的方法是公共 API 的一部分应写成:
$ u7 k" x' r9 x* y7 d8 WWriteToDB但如果是内部辅助方法,应该这样写:
4 u; w$ R- j. k  i( \9 G& @writeToDB定义导出性定义导出性(extern,public等)相比之下,这样做的好处是,将其作为名称的一部分,可以确保您知道它是否在任何使用标志符的地方导出,而无需找到其定义的位置(查看定义是否包含关键字)。5 `6 \' I2 j, O+ \) ^- D; U
另请参阅:    规范中的导出标识符。# t  b( x3 ^/ ^! x) t
国际化因为 Go 是 UTF-8 编码,并支持任何具有字母或数字属性的标识符名称Unicode 字符,所以一些语言环境中没有大小写概念的人可能无法创建导出方法(默认是非导出)。在这种情况下(双关语),通常在标志符前添加前缀X例如:X日本语
0 t4 ^) r0 `& Y8 J另请参阅:    Unicode 标识符是怎么回事?常见问题。' r& e' e0 ?% m$ ?1 x" {2 C
风格就一般风格而言,总是使用驼峰大小写(除了第一个字母,如前所述)。这包括常量、函数和其他标识符。因此,例如(导出)常量列表可能如下:
- Z* t! E" F+ w& u  W
    const  StateConnected = iota    StateError    StateDone    internalStateMask = 0x2 )+ T1 i, S9 ]  X7 z5 l
此外,缩写总是使用相同的大小写,因此您可以编写以下内容之一:2 [) X6 P4 {) r: U! |# n$ u9 ?( v
    dbWritewriteDB9 Q$ O  t+ o" {) Z5 t; P
而不是writeDb或DbWrite。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则