亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

什么是 Golang 結構字段命名約定?

什么是 Golang 結構字段命名約定?

Go
www說 2023-04-04 15:31:31
我正在嘗試使用 Visual Studio Code 學習 Go,我猜它正在使用 Go linter。我創建了這個結構來將 JSON 對象映射到。type someAPI struct {     ApiEndpoint string   `json:"apiEndpoint"`     ApiVersion  string   `json:"apiVersion"`     ... }我收到這些警告......結構字段 ApiEndpoint 應該是 APIEndpoint結構字段 ApiVersion 應該是 APIVersion我做了一些谷歌搜索,但找不到與此相關的結構字段名稱的任何要求。我發現的最多的是,如果你想公開一個領域,你必須將它資本化。那么為什么這個 linter 警告我這些名字呢?我通過更改為進行了一些測試Api,Abc但 linter 沒有警告我將其更改為“ABC”。所以我必須假設它正在檢查以“Api”開頭的名稱。字段名稱的 Go 約定是什么?或者換句話說,還有其他我應該知道的約定嗎?
查看完整描述

2 回答

?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

對于大多數情況,Go 中的命名約定只是使用駝峰式大小寫,如果是公共字段則以大寫開頭,否則以小寫開頭。但是在像 API 或 URL 這樣的首字母縮略詞中,它們是用完整的大寫字母寫的,例如。在http 包func ProxyURL(fixedURL *url.URL)上。

我搜索了更多,Go Code Review Comments上有首字母縮略詞指南。它在Initialisms部分討論首字母縮略詞:

名稱中的首字母縮略詞或首字母縮略詞(例如“URL”或“NATO”)具有一致的大小寫。例如,“URL”應該顯示為“URL”或“url”(如“urlPony”或“URLPony”),絕不能顯示為“Url”。例如:ServeHTTP 而不是 ServeHttp。對于具有多個初始化“單詞”的標識符,使用例如“xmlHTTPRequest”或“XMLHTTPRequest”。

這個規則也適用于“ID”是“identifier”的縮寫,所以寫“appID”而不是“appId”。

所以首字母縮略詞的規則是它們應該有不變的大小寫。在您的情況下,因為它們必須以大寫字母“A”開頭,所以您應該將它們寫為“API”。

此外,這只是我的個人意見,我知道示例中的代碼可能不是您正在使用的確切代碼,但如果是,我認為在字段名稱中包含結構名稱是一種不好的做法。你正在做api.APIFieldapi.Field更容易閱讀,如果你知道該對象是一個 API,那么毫無疑問該字段屬于一個 API。


查看完整回答
反對 回復 2023-04-04
?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

變量函數命名的約定是 Camel Case(混合大寫)。如果名稱以大寫字母開頭,則可以導出變量/函數。

包總是小寫的。

接口應以-er

另一方面,Golint 超越了 Go 的命名約定。單詞有一些規則,在您的情況下,您正在遵守其中一條規則。


查看完整回答
反對 回復 2023-04-04
  • 2 回答
  • 0 關注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號