婷婷综合国产,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語言中的二維切片賦值的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 卢湾区| 和林格尔县| 凤庆县| 清镇市| 信宜市| 时尚| 离岛区| 龙岩市| 荔波县| 云南省| 松阳县| 黄陵县| 江阴市| 日土县| 丰镇市| 武宁县| 宜都市| 涞水县| 雅安市| 新绛县| 蒙自县| 甘德县| 镇原县| 夏邑县| 河津市| 平南县| 阳山县| 田林县| 永州市| 嘉兴市| 外汇| 巩义市| 桐城市| 察雅县| 瑞昌市| 潮州市| 鸡泽县| 洞头县| 冕宁县| 蓝田县| 宁蒗|