過去的風格指南非常廣泛,但Google最近發布了他們的 代碼審查意見 文檔,這幾乎就是我們應遵守的公約。因此,我們使用它。 實際上我們把它推進了一點:
避免命名返回參數,除非他們能明確和顯著地提高透明度。
避免用 make 和 new,除非他們是必要的(new(int),或 make(Chan int)),或者我們能提前知道要分配的東西的尺寸( make(map[int]string,n),或 make([]int,0,256))。
使用 struct{} 作為標記值,而不是布爾或介面{}。例如,集合是 map[string]struct{};通道是 chan struct{}。它明確標明了資訊的明確缺乏。
打斷長行的參數也很好。那更象是Java的風格: // 不要這樣。func process(dst io.Writer, readTimeout,writeTimeout time.Duration, allowInvalid bool,max int, src <-chan util.Job) {// ...} 這樣會更好: func process(dst io.Writer,readTimeout, writeTimeout time.Duration,allowInvalid bool,max int,src <-chan util.Job,) {// ...} 當構造對象時也同樣分為多行: f := foo.New(foo.Config{
Site: "zombo.com",
Out: os.Stdout,
Dest: conference.KeyPair{
Key: "gophercon",Value: 2014,},}) 另外,當分配新的對象時,在初始化部分傳遞成員值(如上面)比下面這樣過後設定要好。 // 不要這樣。f := &Foo{} // or, even worse: new(Foo)f.Site = "zombo.com"f.Out = os.Stdoutf.Dest.Key = "gophercon"f.Dest.Value = 2014 |
趙亮-碧海情天 翻譯於 5 個月 前 0人頂 頂 翻譯的不錯哦! |