1 回答

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊
按照慣例,您幾乎已經(jīng)完成了所有應(yīng)該做的事情:
使字段未導(dǎo)出
提供構(gòu)造函數(shù)
對應(yīng)該使用構(gòu)造函數(shù)的類型發(fā)表評論,并解釋如何處理零值(如果這很重要)
現(xiàn)在包的用戶不能修改該字段,并且 constrictor 的存在清楚地表明應(yīng)該調(diào)用它來創(chuàng)建有效實(shí)例。這是標(biāo)準(zhǔn)庫設(shè)定的約定。
當(dāng)然,還有其他方法可以使值無效變得更加困難,但這本質(zhì)上只是在浪費(fèi)時(shí)間,并且為了與想象中的對手進(jìn)行無法取勝的軍備競賽而使代碼過于復(fù)雜。
如果有人不懂該語言并且不閱讀文檔,那么他們總是會(huì)找到一種濫用它的方法。如果他們積極地試圖破壞自己,那么您無法阻止他們,也沒有理由阻止他們。
包是 Go 中代碼組織的最小功能單元。例如,無法在文件級別保護(hù)字段。即使是同一個(gè)包中的文件也能有效地運(yùn)行,就好像它們的所有代碼都在同一個(gè)文件中一樣。因此,與構(gòu)造函數(shù)在同一個(gè)包中的任何代碼都將具有與構(gòu)造函數(shù)相同的特權(quán)。
- 1 回答
- 0 關(guān)注
- 97 瀏覽
添加回答
舉報(bào)