最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go語言--切片(Slice)詳解

 更新時間:2021年10月08日 11:24:46   作者:歸子莫  
這篇文章主要介紹了Go語言--切片(Slice),Go 語言切片是對數(shù)組的抽象,下面文章小編將為大家詳細介紹該內(nèi)容,需要的朋友可以參考下,希望對你有所幫助

說明:

Go 語言切片是對數(shù)組的抽象。

Go 數(shù)組的長度不可改變,在特定場景中這樣的集合就不太適用,Go中提供了一種靈活,功能強悍的內(nèi)置類型切片("動態(tài)數(shù)組"),與數(shù)組相比切片的長度是不固定的,可以追加元素,在追加時可能使切片的容量增大。

一、定義切片

注意:切片不需要說明長度

1、聲明一個未指定大小的數(shù)組來定義切片

var identifier []type
//例如
var slice []int

2、使用make()函數(shù)來創(chuàng)建切片

var slice1 []type = make([]type, len)
//也可以簡寫為
slice1 := make([]type, len)
//例如
slice := make([]type, len)

二、切片是可索引的

1、len() 和 cap() 函數(shù)

可以由 len() 方法獲取長度。

切片提供了計算容量的方法 cap() 可以測量切片最長可以達到多少

package main

import "fmt"

func main(){
    var number = make([]int,3,5)
    fmt.Printf("len=%d cap=%d         slice=%v\n",len(number),cap(number),number)
}

//len=3 cap=5 slice=[0 0 0]

2、空(nil)切片

一個切片在未初始化之前默認為 nil,長度為 0

package main

import "fmt"

func main(){
    var number []int
    fmt.Printf("len=%d cap=%d slice=%v\n",len(number),cap(number),number)
}

//len=0 cap=0 slice=[]

三、切片截取

可以通過設置下限及上限來設置截取切片 [lower-bound:upper-bound]

package main

import "fmt"

func main() {
    //創(chuàng)建切片
    number := []int{0, 1, 2, 3, 4, 5, 6, 7, 8}
    printSlice(number)

    //打印原始切片
    fmt.Println("number == ", number)

    //打印子切片從索引1到索引4
    fmt.Println("number == ", number[1:4])

    //打印子切片默認下限
    fmt.Println("number == ", number[:3])

    //打印子切片默認上限
    fmt.Println("number == ", number[4:])

}

func printSlice(x []int) {
    fmt.Printf("len=%d cap=%d slice=%v\n", len(x), cap(x), x)
}

結果:

四、增加切片的容量

原理:創(chuàng)建一個新的更大的切片并把原分片的內(nèi)容都拷貝過來

append() 和 copy() 函數(shù)
package main

import (
    "fmt"
)

func main() {
    //創(chuàng)建切片
    var number []int
    printSlice(number)

    //允許追加空切片
    number = append(number,0)
    printSlice(number)

    //向切片添加一個元素
    number = append(number,1)
    printSlice(number)

    //同時添加多個元素
    number = append(number,2,3,4)
    printSlice(number)

    //創(chuàng)建的新的切片是之前的切片容量的兩倍
    number1 := make([]int,len(number),(cap(number))*2)

    //拷貝number的內(nèi)容到number1中
    copy(number1,number)
    printSlice(number1)
}

func printSlice(x []int) {
    fmt.Printf("len=%d cap=%d slice=%v\n", len(x), cap(x), x)
}

到此這篇關于Go語言--切片(Slice)詳解的文章就介紹到這了,更多相關Go語言切片(Slice)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Go語言學習技巧之如何合理使用Pool

    Go語言學習技巧之如何合理使用Pool

    這篇文章主要給大家介紹了關于Go語言學習技巧之如何合理使用Pool的相關資料,Pool用于存儲那些被分配了但是沒有被使用,而未來可能會使用的值,以減小垃圾回收的壓力。文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。
    2017-12-12
  • Golang Defer關鍵字特定操作詳解

    Golang Defer關鍵字特定操作詳解

    defer是Go語言中的延遲執(zhí)行語句,用來添加函數(shù)結束時執(zhí)行的代碼,常用于釋放某些已分配的資源、關閉數(shù)據(jù)庫連接、斷開socket連接、解鎖一個加鎖的資源,這篇文章主要介紹了golang中的defer函數(shù)理解,需要的朋友可以參考下
    2023-03-03
  • go進行http請求偶發(fā)EOF問題分析

    go進行http請求偶發(fā)EOF問題分析

    go使用連接池進行http請求,一般都能請求成功,但偶然會出現(xiàn)請求失敗返回EOF錯誤的情況,本文主要來帶大家分析一下為什么會出現(xiàn)這樣的問題并提供解決方法,需要的可以參考下
    2025-01-01
  • Golang中println和fmt.Println區(qū)別解析

    Golang中println和fmt.Println區(qū)別解析

    Golang 中打印數(shù)據(jù)通常使用 fmt.Println() 方法,也可以使用內(nèi)置的 println() 方法。這兩個方法大家可能都使用過,它們的區(qū)別是什么呢?本文給大家詳細講解,感興趣的朋友跟隨小編一起看看吧
    2023-03-03
  • Golang內(nèi)存泄漏場景以及解決方案詳析

    Golang內(nèi)存泄漏場景以及解決方案詳析

    golang中內(nèi)存泄露的發(fā)現(xiàn)與排查一直是來是go開發(fā)者頭疼的一件事,下面這篇文章主要給大家介紹了關于Golang內(nèi)存泄漏場景以及解決的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • 詳解Golang中Channel的原理和使用技巧

    詳解Golang中Channel的原理和使用技巧

    Channel管道提供了一種機制,它在兩個并發(fā)執(zhí)行的協(xié)程之間進行同步,并通過傳遞與該管道元素類型相符的值來進行通信。本文主要介紹了Channel的原理和使用技巧,需要的可以參考一下
    2022-11-11
  • go語言的panic和recover函數(shù)用法實例

    go語言的panic和recover函數(shù)用法實例

    今天小編就為大家分享一篇關于go語言的panic和recover函數(shù)用法實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • go-zero過載保護源碼解讀

    go-zero過載保護源碼解讀

    這篇文章主要為大家介紹了go-zero過載保護源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Golang哈希算法實現(xiàn)配置文件的監(jiān)控功能詳解

    Golang哈希算法實現(xiàn)配置文件的監(jiān)控功能詳解

    這篇文章主要介紹了Golang哈希算法實現(xiàn)配置文件的監(jiān)控功能,哈希和加密類似,唯一區(qū)別是哈希是單項的,即哈希后的數(shù)據(jù)無法解密,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-03-03
  • Go和Java算法詳析之分數(shù)到小數(shù)

    Go和Java算法詳析之分數(shù)到小數(shù)

    這篇文章主要給大家介紹了關于Go和Java算法詳析之分數(shù)到小數(shù)的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-08-08

最新評論

泾川县| 西贡区| 胶南市| 长岭县| 时尚| 西宁市| 湘西| 彭山县| 汤原县| 福贡县| 林西县| 阜新| 平和县| 思南县| 罗田县| 乌海市| 泊头市| 即墨市| 云霄县| 巴彦县| 满城县| 琼中| 襄汾县| 阜平县| 德保县| 杭锦后旗| 固镇县| 遂昌县| 竹溪县| 阿拉善右旗| 精河县| 邛崃市| 商丘市| 古交市| 微山县| 大关县| 赤峰市| 沛县| 汝南县| 屏东市| 溧水县|