首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >戈朗结构字段命名约定是什么?

戈朗结构字段命名约定是什么?
EN

Stack Overflow用户
提问于 2018-09-16 20:47:24
回答 2查看 25.9K关注 0票数 21

我正在尝试学习Go,使用代码,我猜它使用的是Go linter。我创建了这个结构来将一个JSON对象映射到。

代码语言:javascript
复制
type someAPI struct {
    ApiEndpoint string   `json:"apiEndpoint"`
    ApiVersion  string   `json:"apiVersion"`
    ...
}

我收到警告..。

结构字段ApiEndpoint应该是APIEndpoint 结构字段ApiVersion应该是APIVersion

我做了一些谷歌,我找不到任何关于结构化字段名的要求。我发现的最重要的是,如果你想公开一个领域,你必须把它资本化。

为什么这个林特要警告我这些名字?

我通过将Api改为Abc进行了一些测试,而linter没有警告我将其更改为"ABC“。所以我得假设它是在检查以"Api“开头的名字。

字段名的Go约定是什么?或者换句话说,我是否应该知道其他的约定?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-16 21:00:57

在大多数情况下,Go中的命名约定只是使用camel大小写,如果是公共字段,则从大写开始;如果不是,则使用小写。但在像API或URL这样的缩略语中,它们是用大写字母(如大写)写的。func ProxyURL(fixedURL *url.URL) on http包

编辑:,我搜索了一些更多的内容,还有关于Go代码评审评论缩略词的指导原则。它在首字母部分中讨论了缩略语:

名字中的单词是首字母或首字母缩略词。"URL“或”北约“)有一个一致的例子。例如,"Url“应该以"URL”或"URL“(如"urlPony”或"URLPony")的形式出现,而不是以"url“的形式出现。举个例子: ServeHttp而不是ServeHTTP。对于具有多个初始化“word”的标识符,例如使用"XMLHTTPRequest“或"xmlHTTPRequest”。 当"ID“是”标识符“的缩写时,这个规则也适用于”ID“,所以写"appId”而不是"appID“。

因此,缩略语的规则是,它们应该有固定的情况。在您的例子中,因为它们必须以大写字母"A“开头,所以您应该将它们写成"API”。

这也是我个人的观点,我知道这个例子中的代码可能不是你正在使用的代码,但如果是的话,我认为在字段名中包含结构名是一种不好的做法。您正在做api.APIField,但是api.Field更容易阅读,如果您知道对象是API,那么毫无疑问,字段属于API。

票数 36
EN

Stack Overflow用户

发布于 2018-09-16 21:32:57

正如这里在您的问题和@topo的答案中提到的那样,变量函数命名的惯例是Camel情况(混合大写)。如果名称以大写字母开头,则可以导出变量/函数。

包总是小写的。

接口应该以-er结束

您可以在有效的go命名会话中阅读更多内容。

另一方面,戈林的命名超越了Go惯例。有几个规则的文字,在你的情况下,你是打其中一个规则。您可以在这里看到完整的列表:https://github.com/golang/lint/blob/master/lint.go#L751

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52358247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档