婷婷综合国产,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語言中的二維切片賦值的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 于都县| 航空| 祁门县| 宜州市| 临泉县| 卓尼县| 铁岭县| 昭苏县| 广丰县| 金寨县| 固镇县| 启东市| 西乌| 禹州市| 麻栗坡县| 扎赉特旗| 宜黄县| 甘南县| 雅安市| 孝义市| 泉州市| 绍兴市| 临猗县| 安新县| 利津县| 吉隆县| 汶上县| 满洲里市| 涿州市| 金秀| 高台县| 滨州市| 高青县| 册亨县| 安乡县| 临武县| 布尔津县| 江华| 博野县| 宁南县| 常宁市|