以缩写开头的变量/方法的golang命名约定是什么?哪个命名约定优先?[duplicate]

cygmwpex  于 2023-01-28  发布在  Go
关注(0)|答案(3)|浏览(143)

此问题在此处已有答案

Why is go-lint is giving inconsistent suggestions about initialisms?(1个答案)
昨天关门了。
此帖子已在15小时前编辑并提交审阅,未能重新打开帖子:

基于观点更新问题,以便editing this post可以用事实和引用来回答。

如果golang中的变量/方法以缩写开头,是否应该命名?
是urlToString()还是URLToString()?urlToString()表示未导出,URLToString()表示导出。但也有一个规则,即缩写必须全部大写。
这里应该优先选择哪一条规则?

dnph8jn4

dnph8jn41#

从Go代码评审评论wiki的首字母缩写中,我们可以看到:
名称中的首字母缩写词或首字母缩写词(例如"URL"或"NATO")大小写一致。例如,"URL"应显示为"URL"或"url"(如"urlPony"或"URLPony"),而不能显示为"Url"。例如:ServeHTTP不是ServeHttp。对于具有多个初始化"单词"的标识符,请使用例如"xmlHTTPRequest"或"XMLHTTPRequest"。
当"ID"是"identifier"的缩写时,这个规则也适用于"ID"(当它不是"自我"、"超我"中的"id"时,几乎所有的情况都是如此),所以写"appID"而不是"appId"。
所以你问题的直接答案是:
它是urlToString()还是URLToString()?
是"是的"
两者都是正确的。您使用哪一个取决于您的函数是否应该导出。如果要导出,则URLToString()是正确的。如果不导出,则urlToString()是正确的。
顺便说一句:除非或直到你有一个令人信服的理由要出口,否则最好不要出口。

jmo0nnb3

jmo0nnb32#

在Go语言中,变量和方法的命名约定是使用CamelCase,其中第一个单词的首字母是小写的,后面的单词的首字母是大写的。当变量或方法名以缩写开头时,缩写也应该大写。
例如,如果一个变量代表用户的ID,它可能被命名为“userID”或“UserID”。同样,如果一个方法检索用户的信息,它可能被命名为“getUserInfo”或“GetUserInfo”。
同样要记住,声明的变量、类型和函数的首字母大写将使它们全局可用,如果你只想在模块中使用局部函数,那么首字母小写。希望这对你有帮助。

6rqinv9w

6rqinv9w3#

在Go语言中,对于级别访问权限来说,也就是exported和unexported,可以使用camelCase作为unexported(私有)修饰符,使用PascalCase作为exported(公共)级别访问修饰符,对于URLToString(),我更喜欢使用UrlToString()作为exported级别访问

相关问题