<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    咖啡伴侶

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

    golang slice分割和append copy還是引用

    Posted on 2013-11-20 18:46 oathleo 閱讀(6666) 評論(1)  編輯  收藏 所屬分類: Golang
    1.slice1:= slice[0:2]
    引用,非復制,所以任何對slice1或slice的修改都會影響對方
    data := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
    data1 := data[0:2]
    data1[0] = 99
    fmt.Println(data1)
    fmt.Println(data)
    [99 2]
    [99 2 3 4 5 6 7 8 9 0]
    2.append
    append 比較特殊
    聲明:
    源slice= src
    添加slice = app
    結果slice=tar
    1)如果len(src) + len(app) <= cap(src)  src和tar 是指向同一數據引用 ,即修改src或tar,會影響對方
    2)否則 tar 是copy的方式 src + app ,即修改src或tar,不會影響對方
    無論哪種情況不會影響app,因為app都會用copy的方式進入tar
     
    func test2() {
    data := make([]int, 10, 20)
    data[0] = 1
    data[1] = 2
    dataappend := make([]int, 10, 20)//len <=10 則  result[0] = 99 會 影響源Slice
    dataappend[0] = 1
    dataappend[1] = 2
    result := append(data, dataappend...)
    result[0] = 99
    result[11] = 98
    fmt.Println("length:", len(data), ":", data)
    fmt.Println("length:", len(result), ":", result)
    fmt.Println("length:", len(dataappend), ":", dataappend)
    }

    Feedback

    # re: golang slice分割和append copy還是引用  回復  更多評論   

    2013-12-15 19:56 by xiaowanyee
    謝謝分享~~
    主站蜘蛛池模板: 无码不卡亚洲成?人片| 成人性生交大片免费看中文| 免费播放特黄特色毛片| 国精产品一区一区三区免费视频| 色婷婷六月亚洲婷婷丁香| 日韩成人免费在线| 最近2018中文字幕免费视频| 在线观看亚洲专区| 一本色道久久88亚洲精品综合| 亚洲国产一成人久久精品| 一本久到久久亚洲综合| 成人浮力影院免费看| 最近2019中文字幕免费直播| 伊人久久国产免费观看视频| 亚洲av永久无码| 亚洲午夜无码久久久久软件| 4480yy私人影院亚洲| 亚洲短视频男人的影院| 亚洲av鲁丝一区二区三区| 亚洲av之男人的天堂网站| 亚洲va无码手机在线电影| 亚洲av不卡一区二区三区| 亚洲AV无码成人网站久久精品大 | 亚洲中文字幕无码永久在线| 免费在线观看黄网站| 亚洲熟妇少妇任你躁在线观看无码| 永久久久免费浮力影院| 免费人成视频x8x8入口| 亚洲男人的天堂www| 亚洲精品偷拍无码不卡av| 亚洲一卡2卡3卡4卡乱码 在线| 亚洲一区二区三区高清在线观看 | 亚洲一本大道无码av天堂| 国产成人亚洲综合色影视| 亚洲精品人成电影网| 久久亚洲中文无码咪咪爱| 最近更新免费中文字幕大全| 在线视频观看免费视频18| 国产午夜免费秋霞影院| 亚洲成AV人片在线观看| 亚洲精品人成网在线播放影院|