切片类型的Go-idiomatic命名

时间:2015-01-16 15:33:56

标签: go

当我需要切片上的方法时,我必须声明一个新类型。但我该怎么命名呢?

type SliceSomething []Somethingtype SomethingSlice []Something

由于它被称为“切片”,第一个似乎更好,但自动完成可能更喜欢第二个。

2 个答案:

答案 0 :(得分:2)

CodeReview wiki page

  

Go中的变量名称应该短而不是长   对于范围有限的局部变量尤其如此   首选clineCount。首选isliceIndex

     

基本规则:声明使用名称越远,名称必须越具描述性。

这就是为什么你不会经常在go来源中找到“Slice”,除了:

encoding/gob/encoder_test.go:335:  type recursiveSlice []recursiveSlice
encoding/json/encode_test.go:107:  type renamedByteSlice []byte
encoding/json/encode_test.go:108:  type renamedRenamedByteSlice []renamedByte
regexp/onepass.go:283:             type runeSlice []rune
sort/sort.go:233:                  type IntSlice []int
sort/sort.go:243:                  type Float64Slice []float64
sort/sort.go:258:                  type StringSlice []string
unicode/maketables.go:1118:        type runeSlice []rune

因此,如果 在名称中添加“Slice”,则 type SomethingSlice []Something 而不是type SliceSomething []Something

答案 1 :(得分:0)

查看Go source code以获得公认的习语。