婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > go語言中的二維切片賦值

go語言中的二維切片賦值

熱門標簽:涿州代理外呼系統 阿克蘇地圖標注 外呼系統用什么卡 電話機器人軟件免費 外呼系統顯本地手機號 excel地圖標注分布數據 評價高的400電話辦理 百度地圖標注后傳給手機 壽光微信地圖標注

先用append填充一維的,然后將一維append到二維

代碼如下

var a [][]int
for i := 0; i  10; i++ {
     var tmp []int
     for j:= 0; j  10; j++ {
          tmp = append(tmp, j)
     }
     a = append(a, tmp)
}

補充:Go切片的一些技巧

空切片也是切片

與map不同,尚未分配的切片也是可以用的:

一個nil切片的長度和容量都是0;你可以append到一個空切片,Go會自動分配;你也可以直接迭代一個空切片

var s []int64 // nil, len 0, cap 0
for i := range s {
  fmt.Println("this will not be printed")
}
s = append(s, 1) // len 1

結果就是,如果一個map的值是slice類型,那么沒必要為一個新的key創建一個slice。

m := map[string][]int64{}
for {
  // do something
  if _, found := m[key]; !found {
    m[key] = []int64{value}
  } else {
    m[key] = append(m[key], value)
  }
}

上面的代碼可以替換為

m := map[string][]int64{}
for {
  // do something
  m[key] = append(m[key], value)
}

對一個切片進行重新切片,會分享同一個底層數組

一個切片就是一個指向數組的指針。重新切片(如 s2 := s1[a:b] )就是對相同的底層數組創建了一個新的指針,新的指針具有不同的起始偏移量和切片長度。

結果就是,append操作會修改所有切片。

s1 := []int64{1, 2, 3}
s2 := s1[:1]
s2 = append(s2,0)
fmt.Println(s1) // []int64{1, 0, 3}

……除非需要分配一個新數組:

s1 := []int64{1, 2, 3}
s2 := s1[:1]
s2 = append(s2,0,0,0) // 重新分配了一個新的底層數組
fmt.Println(s1) // []int64{1, 2, 3}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • go語言求任意類型切片的長度操作
  • 如何在Go中使用切片容量和長度
  • Go語言切片前或中間插入項與內置copy()函數詳解
  • golang中切片copy復制和等號復制的區別介紹
  • go語言中切片與內存復制 memcpy 的實現操作
  • go語言中切片的長度和容量的區別

標簽:梅河口 吐魯番 欽州 汕頭 銅川 重慶 蘭州 雞西

巨人網絡通訊聲明:本文標題《go語言中的二維切片賦值》,本文關鍵詞  語言,中的,二維,切片,賦值,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《go語言中的二維切片賦值》相關的同類信息!
  • 本頁收集關于go語言中的二維切片賦值的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 民权县| 萝北县| 宣威市| 中卫市| 库车县| 额尔古纳市| 沧州市| 马公市| 牟定县| 九江县| 巩义市| 石首市| 明溪县| 周至县| 桑植县| 武功县| 竹山县| 乃东县| 历史| 五河县| 永州市| 临武县| 泰来县| 宜春市| 上杭县| 永定县| 海伦市| 乡宁县| 北流市| 杭州市| 嘉定区| 犍为县| 永胜县| 渝中区| 铁力市| 渭南市| 中西区| 大连市| 义乌市| 利川市| 嘉祥县|