golang slice
阿新 • • 發佈:2017-07-04
end info 即使 inf clas lang ack 讀取 fmt
golang 在for range一個slice時,會讀出其cap長度。在for的過程中,即使動態append該slice,最終for也會在第一次讀取的cap長度處停止。
package main import ( "fmt" ) func main() { s := make([]string, 3) s[0]="a" s[1]="b" s[2]="c" for _,i := range s { s = append(s, s[0]) fmt.Println("len", len(s)) fmt.Println("cap", cap(s)) fmt.Println("i", i) fmt.Println("s", s) } s = append(s, "e") fmt.Println(">>>len", len(s)) fmt.Println(">>>cap", cap(s)) fmt.Println(">>>s", s) }
輸出為:
len 4 cap 6 i a s [a b c a] len 5 cap 6 i b s [a b c a a] len 6 cap 6 i c s [a b c a a a]
>>>len 7
>>>cap 12
>>>s [a b c a a a e]
golang slice