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

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

在 Go 中命名 Getter 的慣用方式

在 Go 中命名 Getter 的慣用方式

Go
jeck貓 2021-11-22 18:38:49
Effective go 對 getter 的命名有以下建議:Go 不提供對 getter 和 setter 的自動支持。自己提供 getter 和 setter 并沒有錯,而且這樣做通常是合適的,但是將 Get 放在 getter 的名稱中既不慣用,也沒有必要。如果您有一個名為 owner(小寫,未導出)的字段,則 getter 方法應稱為 Owner(大寫,已導出),而不是 GetOwner。使用大寫名稱導出提供了區分字段和方法的鉤子。如果需要,setter 函數可能會被稱為 SetOwner。這兩個名字在實踐中都很好讀:來源:https : //golang.org/doc/effective_go.html#Getters現在,這個建議似乎不一致,因為 stdlib 本身多次違反了這一點。正如您在上面的屏幕截圖中看到的,有多種使用 GetX 命名約定的方法,這是有效的 go 指南中建議不要使用的。所以問題是指南中給出的建議是錯誤的還是這些方法命名錯誤并且會在未來版本中修復?
查看完整描述

3 回答

?
猛跑小豬

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

這些名稱與 Go 的設計命名不一致。Go 的創造者之一 Rob Pike談到了 OS 包中的名稱

有不一致之處,但這是關鍵點。它應該是 Stdout 而不是 StdOut,因為該名稱來自底層系統。同樣,它是 Fprintf 而不是 FPrintf 或 FPrintF,因為這是一個非常熟悉的名字。這些名字是進入 Go 的,而不是在那里創建的,最初的上限是入場費。

在 Go 的未來版本中不會更改這些名稱。


查看完整回答
反對 回復 2021-11-22
?
皈依舞

TA貢獻1851條經驗 獲得超3個贊

[go-nuts] 函數名大小寫不一致

在我們真正弄清楚命名約定應該是什么之前,選擇了很多全小寫的名稱。我們采用的規則(稍后可能值得重新審視)是 package osor中的入口點,syscall以 C 中的等價物命名,在開頭只有一個大寫,以避免需要決定內部大寫在縮寫中的位置,例如geteuid 或getwd或chdir。像 那樣的名稱Readdirnames是實際的單詞,在某些時候可能值得重新審視。


拉斯


os:名稱中的大小寫不一致 #1187

關于“ os”包中使用的函數的大小寫是否有任何規則?仔細看,這聽起來不是很容易回想是否應該調用給定的函數LikeThat或 Likethat.


例如:


Mkdir

MkdirAll

TempDir

Getenv

ForkExec

Readlink

ReadAt

Readdir

感覺很特別,很難回想起來。


這是一個已知問題。這是計劃外的。


查看完整回答
反對 回復 2021-11-22
?
桃花長相依

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

術語“getter”指的是結構上的方法,這些方法允許您讀取該結構上(通常是未導出的)字段的值。您指向的函數是頂級函數,允許您從 OS讀取值。該慣用規則與本案無關。


查看完整回答
反對 回復 2021-11-22
  • 3 回答
  • 0 關注
  • 253 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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