回答

收藏

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

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

我想在 Go在 中写一个函数,将文档插入 MongoDB 数据库集合。哪种方式更好地命名函数,
# v( {8 {' G0 l2 Y% m7 {0 ^- V, U3 s9 |writeToMongoDB 或者7 x' y3 j9 P6 l: m* v4 @2 B" I8 \
WriteToMongoD?
第二个是CamelCase,我看到有人用第一种风格,不知道哪个更合适。谢谢你。
! @4 y$ f1 U. s1 F0 U, P  `- U                                                               
' p1 {. r0 K8 x! L    解决方案:                                                                9 d" ~' B3 ]0 s
                                                                语法在 Go 中,这不是风格问题,而是语法问题。/ @& Q  B+ h$ t+ D& M5 ~: `6 R6 |
从大写字母开始导出的名称(即可以从定义包外使用的标识符)。所以,如果你的方法是公共 API 的一部分应写成:" N1 ^' b3 g3 t
WriteToDB但如果是内部辅助方法,应该这样写:
8 B$ q% c  ]" d& N# |  a4 EwriteToDB定义导出性定义导出性(extern,public等)相比之下,这样做的好处是,将其作为名称的一部分,可以确保您知道它是否在任何使用标志符的地方导出,而无需找到其定义的位置(查看定义是否包含关键字)。" d) q# [2 v% {& m) Z5 B! x, F
另请参阅:    规范中的导出标识符。4 k0 ^/ Q  Q& I9 y8 Z! d
国际化因为 Go 是 UTF-8 编码,并支持任何具有字母或数字属性的标识符名称Unicode 字符,所以一些语言环境中没有大小写概念的人可能无法创建导出方法(默认是非导出)。在这种情况下(双关语),通常在标志符前添加前缀X例如:X日本语
1 q! Y% q( x5 o. d" B( q6 v' \9 `另请参阅:    Unicode 标识符是怎么回事?常见问题。% u$ y+ d2 x' r" Q. l
风格就一般风格而言,总是使用驼峰大小写(除了第一个字母,如前所述)。这包括常量、函数和其他标识符。因此,例如(导出)常量列表可能如下:- f/ ^8 d8 t. p4 r7 b( n
    const  StateConnected = iota    StateError    StateDone    internalStateMask = 0x2 )
    : c) G- g' C' H& O
此外,缩写总是使用相同的大小写,因此您可以编写以下内容之一:
7 |7 i' V) y/ v( Z, l
    dbWritewriteDB" _1 A( W* o  }; e
而不是writeDb或DbWrite。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则