咖啡伴侶

          呆在上海
          posts - 163, comments - 156, trackbacks - 0, articles - 2

          golang append時(shí)slice len 和 cap

          Posted on 2013-11-20 18:48 oathleo 閱讀(5266) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): Golang
          聲明:
          源slice= src
          添加slice = app
          結(jié)果slice=tar
          append時(shí)
          len tar === len src +   len app
          1)如果len(src) + len(app) <= cap(src)    cap tar  =   cap(src)
          2)否則 
                a) len(src) + len(app) > 2* cap(src)     cap tar  =   len(src) + len(app)
                b) cap(src) < len(src) + len(app) <= 2* cap(src)    cap tar = 2* cap(src)
              data := make([]int, 10, 20)
              data[0] = 1
              data[1] = 2

              dataappend := make([]int, 12, 30)//修改這個(gè)len 
              dataappend[0] = 1
              dataappend[1] = 2

              result := append(data, dataappend)

              result[0] = 99
              result[11] = 98

              fmt.Println("length:", len(data), "cap:", cap(data), ":", data)
              fmt.Println("result length:", len(result), "cap:", cap(result), ":", result)
              fmt.Println("length:", len(dataappend), "cap:", cap(dataappend), ":", dataappend)

          Feedback

          # re: golang append時(shí)slice len 和 cap  回復(fù)  更多評(píng)論   

          2013-11-21 10:42 by 零柒鎖業(yè)
          支持博主分享
          主站蜘蛛池模板: 尼木县| 甘泉县| 江津市| 措勤县| 车致| 浦城县| 澎湖县| 晴隆县| 阳高县| 浮梁县| 东光县| 涿鹿县| 江华| 南召县| 衡阳县| 镇远县| 灵川县| 开化县| 乌审旗| 屯留县| 裕民县| 万盛区| 洞口县| 夏河县| 江达县| 吉安县| 华阴市| 溆浦县| 承德县| 宜丰县| 麦盖提县| 保康县| 灵武市| 南和县| 屏南县| 将乐县| 黄山市| 十堰市| 无棣县| 子长县| 内江市|