此问题在此处已有答案:
Why is go-lint is giving inconsistent suggestions about initialisms?(1个答案)
昨天关门了。
此帖子已在15小时前编辑并提交审阅,未能重新打开帖子:
基于观点更新问题,以便editing this post可以用事实和引用来回答。
如果golang中的变量/方法以缩写开头,是否应该命名?
是urlToString()还是URLToString()?urlToString()表示未导出,URLToString()表示导出。但也有一个规则,即缩写必须全部大写。
这里应该优先选择哪一条规则?
3条答案
按热度按时间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()
是正确的。顺便说一句:除非或直到你有一个令人信服的理由要出口,否则最好不要出口。
jmo0nnb32#
在Go语言中,变量和方法的命名约定是使用CamelCase,其中第一个单词的首字母是小写的,后面的单词的首字母是大写的。当变量或方法名以缩写开头时,缩写也应该大写。
例如,如果一个变量代表用户的ID,它可能被命名为“userID”或“UserID”。同样,如果一个方法检索用户的信息,它可能被命名为“getUserInfo”或“GetUserInfo”。
同样要记住,声明的变量、类型和函数的首字母大写将使它们全局可用,如果你只想在模块中使用局部函数,那么首字母小写。希望这对你有帮助。
6rqinv9w3#
在Go语言中,对于级别访问权限来说,也就是exported和unexported,可以使用camelCase作为unexported(私有)修饰符,使用PascalCase作为exported(公共)级别访问修饰符,对于
URLToString()
,我更喜欢使用UrlToString()
作为exported级别访问