亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

go語(yǔ)言中的二維切片賦值

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

先用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不同,尚未分配的切片也是可以用的:

一個(gè)nil切片的長(zhǎng)度和容量都是0;你可以append到一個(gè)空切片,Go會(huì)自動(dòng)分配;你也可以直接迭代一個(gè)空切片

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

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

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

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

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

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

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

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

相關(guān)文章

  • golang雪花算法實(shí)現(xiàn)64位的ID的示例代碼

    golang雪花算法實(shí)現(xiàn)64位的ID的示例代碼

    本文展示了使用Go語(yǔ)言實(shí)現(xiàn)雪花算法生成64位ID的示例代碼,雪花算法通過(guò)當(dāng)前時(shí)間戳、工作節(jié)點(diǎn)ID、數(shù)據(jù)中心ID和序列號(hào)生成唯一的64位ID,確保在分布式系統(tǒng)中的唯一性和時(shí)間順序性,感興趣的可以了解一下
    2024-09-09
  • Go語(yǔ)言使用protojson庫(kù)實(shí)現(xiàn)Protocol Buffers與JSON轉(zhuǎn)換

    Go語(yǔ)言使用protojson庫(kù)實(shí)現(xiàn)Protocol Buffers與JSON轉(zhuǎn)換

    本文主要介紹Google開源的工具庫(kù)Protojson庫(kù)如何Protocol Buffers與JSON進(jìn)行轉(zhuǎn)換,以及和標(biāo)準(zhǔn)庫(kù)encoding/json的性能對(duì)比,需要的朋友可以參考下
    2023-09-09
  • 解析Go的Waitgroup和鎖的問(wèn)題

    解析Go的Waitgroup和鎖的問(wèn)題

    大家在學(xué)習(xí)go語(yǔ)言的時(shí)候,都知道go語(yǔ)言支持并發(fā),使用 goroutine,使用關(guān)鍵字 go 即可,接下來(lái)通過(guò)本文給大家分享Go的Waitgroup和鎖的問(wèn)題,需要的朋友可以參考下
    2021-05-05
  • 聊聊Golang中很好用的viper配置模塊

    聊聊Golang中很好用的viper配置模塊

    這篇文章主要介紹了Golang中很好用的viper配置模塊用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • 一文帶你深入了解Go語(yǔ)言中切片的奧秘

    一文帶你深入了解Go語(yǔ)言中切片的奧秘

    切片是數(shù)組的一個(gè)引用,因此切片是引用類型。但自身是結(jié)構(gòu)體,值拷貝傳遞。本文將通過(guò)示例帶大家一起探索一下Go語(yǔ)言中切片的奧秘,感興趣的可以了解一下
    2022-11-11
  • Go高級(jí)特性探究之穩(wěn)定排序詳解

    Go高級(jí)特性探究之穩(wěn)定排序詳解

    Go 語(yǔ)言提供了 sort 包,其中最常用的一種是 sort.Slice() 函數(shù),本篇文章將為大家介紹如何使用 sort.SliceStable() 對(duì)結(jié)構(gòu)體數(shù)組的某個(gè)字段進(jìn)行穩(wěn)定排序,感興趣的可以了解一下
    2023-06-06
  • Linux中Go環(huán)境配置和GoModule常用操作

    Linux中Go環(huán)境配置和GoModule常用操作

    這篇文章主要介紹了Linux中Go環(huán)境配置和GoModule,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • 在Go中復(fù)制文件最流行的3種方法

    在Go中復(fù)制文件最流行的3種方法

    今天小編就為大家分享一篇關(guān)于在Go中復(fù)制文件最流行的3種方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • golang順時(shí)針打印矩陣的方法示例

    golang順時(shí)針打印矩陣的方法示例

    這篇文章主要介紹了golang順時(shí)針打印矩陣的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Golang實(shí)現(xiàn)按比例切分流量的示例詳解

    Golang實(shí)現(xiàn)按比例切分流量的示例詳解

    我們?cè)谶M(jìn)行灰度發(fā)布時(shí),往往需要轉(zhuǎn)發(fā)一部分流量到新上線的服務(wù)上,進(jìn)行小規(guī)模的驗(yàn)證,隨著功能的不斷完善,我們也會(huì)逐漸增加轉(zhuǎn)發(fā)的流量,這就需要按比例去切分流量,那么如何實(shí)現(xiàn)流量切分呢,接下來(lái)小編就給大家詳細(xì)的介紹一下實(shí)現(xiàn)方法,需要的朋友可以參考下
    2023-09-09

最新評(píng)論