欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

go語言中的二維切片賦值

 更新時間:2021年04月26日 11:03:32   作者:kgduu  
這篇文章主要介紹了go語言中的二維切片賦值操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

先用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)
}

補(bǔ)充: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

結(jié)果就是,如果一個map的值是slice類型,那么沒必要為一個新的key創(chuàng)建一個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)
}

對一個切片進(jìn)行重新切片,會分享同一個底層數(shù)組

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

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

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

……除非需要分配一個新數(shù)組:

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

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

相關(guān)文章

  • 使用Go進(jìn)行單元測試的實(shí)現(xiàn)

    使用Go進(jìn)行單元測試的實(shí)現(xiàn)

    這篇文章主要介紹了使用Go進(jìn)行單元測試的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Go中的新增對模糊測試的支持

    Go中的新增對模糊測試的支持

    這篇文章主要為大家介紹了Go中的新增對模糊測試的支持,文中還包含了一些功能實(shí)驗(yàn)性測試分析有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-03-03
  • go slice不同初始化方式性能及數(shù)組比較詳解

    go slice不同初始化方式性能及數(shù)組比較詳解

    這篇文章主要為大家介紹了go slice不同初始化方式性能及數(shù)組比較示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • GO實(shí)現(xiàn)跳躍表的示例詳解

    GO實(shí)現(xiàn)跳躍表的示例詳解

    跳表全稱叫做跳躍表,簡稱跳表,是一個隨機(jī)化的數(shù)據(jù)結(jié)構(gòu),實(shí)質(zhì)就是一種可以進(jìn)行二分查找的有序鏈表。本文將利用GO語言編寫一個跳表,需要的可以參考一下
    2022-12-12
  • Go語言函數(shù)的延遲調(diào)用(Deferred Code)詳解

    Go語言函數(shù)的延遲調(diào)用(Deferred Code)詳解

    本文將介紹Go語言函數(shù)和方法中的延遲調(diào)用,正如名稱一樣,這部分定義不會立即執(zhí)行,一般會在函數(shù)返回前再被調(diào)用,我們通過一些示例來了解一下延遲調(diào)用的使用場景
    2022-07-07
  • go特性之?dāng)?shù)組與切片的問題

    go特性之?dāng)?shù)組與切片的問題

    這篇文章主要介紹了go特性之?dāng)?shù)組與切片的問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Go壓縮位圖庫roaring安裝使用詳解

    Go壓縮位圖庫roaring安裝使用詳解

    這篇文章主要為大家介紹了Go壓縮位圖庫roaring安裝使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Go1.20?arena新特性示例詳解

    Go1.20?arena新特性示例詳解

    這篇文章主要為大家介紹了Go1.20?arena新特性示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • golang逐行讀取文件的操作

    golang逐行讀取文件的操作

    這篇文章主要介紹了golang逐行讀取文件的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 基于Go語言實(shí)現(xiàn)壓縮文件處理

    基于Go語言實(shí)現(xiàn)壓縮文件處理

    在現(xiàn)代的應(yīng)用開發(fā)中,處理壓縮文件(如 .zip 格式)是常見的需求,本文將介紹如何使用 Go 語言封裝一個 ziputil 包,來處理文件的壓縮和解壓操作,需要的可以了解下
    2024-11-11

最新評論