|
@@ -0,0 +1,27 @@
|
|
|
+/**
|
|
|
+测试golang slice扩展长度的规则
|
|
|
+
|
|
|
+结论, slice cap空间够的时候,cap不变,cap不够的时候,会乘2.
|
|
|
+*/
|
|
|
+package main
|
|
|
+
|
|
|
+import "fmt"
|
|
|
+
|
|
|
+func main() {
|
|
|
+ var ary = make([]int, 1, 1)
|
|
|
+
|
|
|
+ ary[0] = 1
|
|
|
+ fmt.Printf("value: %v, len: %v, cap: %v\n", ary, len(ary), cap(ary))
|
|
|
+
|
|
|
+ ary = append(ary, 2)
|
|
|
+ fmt.Printf("value: %v, len: %v, cap: %v\n", ary, len(ary), cap(ary))
|
|
|
+
|
|
|
+ ary = append(ary, 3)
|
|
|
+ fmt.Printf("value: %v, len: %v, cap: %v\n", ary, len(ary), cap(ary))
|
|
|
+
|
|
|
+ ary = append(ary, 4)
|
|
|
+ fmt.Printf("value: %v, len: %v, cap: %v\n", ary, len(ary), cap(ary))
|
|
|
+
|
|
|
+ ary = append(ary, 5)
|
|
|
+ fmt.Printf("value: %v, len: %v, cap: %v\n", ary, len(ary), cap(ary))
|
|
|
+}
|