使用slice #
使用slice的时候,如果能预先确定它的大小,最好先设置好它的容量,避免后期扩容拷贝。预先大小也可能为零,所以总担心初始化能不能先申明容量为零。
func testMakeSlice() {
var (
a = make([]int, 0)
b = make([]int, 0, 0)
)
fmt.Printf("a=%+v; b=%+v", a, b)
fmt.Println()
fmt.Printf("a's Length=%+v; b's Length=%+v", len(a), len(b))
fmt.Println()
fmt.Printf("a's Capacity=%+v; b's Capacity=%+v", cap(a), cap(b))
fmt.Println()
if a == nil {
fmt.Println("a is nil")
} else {
fmt.Println("a is not nil")
}
if b == nil {
fmt.Println("b is nil")
} else {
fmt.Println("b is not nil")
}
}
func main() {
testMakeSlice()
}
a=[]; b=[]
a's Length=0; b's Length=0
a's Capacity=0; b's Capacity=0
a is not nil
b is not nil