码迷,mamicode.com
首页 > 其他好文 > 详细

golang slice

时间:2017-07-04 21:40:16      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:stdout   int   log   for   []   lan   func   长度   main   

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

标签:stdout   int   log   for   []   lan   func   长度   main   

原文地址:http://www.cnblogs.com/elaron/p/7118298.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!