站長資訊網
最全最豐富的資訊網站

golang中切片是啥

在golang中,切片是對數組的一個連續片段的引用,這個片段可以是整個數組,也可以是由起始和終止索引標識的一些項的子集。Go語言中切片的內部結構包含地址、大小和容量,切片一般用于快速地操作一塊數據集合,如果將數據集合比作切糕的話,切片就是你要的“那一塊”,切的過程包含從哪里開始(切片的起始位置)及切多大(切片的大小),容量可以理解為裝切片的口袋大小。

golang中切片是啥

php入門到就業線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調試工具:點擊使用

本教程操作環境:windows7系統、GO 1.18版本、Dell G3電腦。

切片(slice)是對數組的一個連續片段的引用,所以切片是一個引用類型(因此更類似于 C/C++ 中的數組類型,或者 Python 中的 list 類型),這個片段可以是整個數組,也可以是由起始和終止索引標識的一些項的子集,需要注意的是,終止索引標識的項不包括在切片內。

Go語言中切片的內部結構包含地址、大小和容量,切片一般用于快速地操作一塊數據集合,如果將數據集合比作切糕的話,切片就是你要的“那一塊”,切的過程包含從哪里開始(切片的起始位置)及切多大(切片的大小),容量可以理解為裝切片的口袋大小,如下圖所示。

golang中切片是啥
圖:切片結構和內存分配

從數組或切片生成新的切片

切片默認指向一段連續內存區域,可以是數組,也可以是切片本身。

從連續內存區域生成切片是常見的操作,格式如下:

slice [開始位置 : 結束位置]
登錄后復制

語法說明如下:

  • slice:表示目標切片對象;

  • 開始位置:對應目標切片對象的索引;

  • 結束位置:對應目標切片的結束索引。

從數組生成切片,代碼如下:

var a  = [3]int{1, 2, 3} fmt.Println(a, a[1:2])
登錄后復制

其中 a 是一個擁有 3 個整型元素的數組,被初始化為數值 1 到 3,使用 a[1:2] 可以生成一個新的切片,代碼運行結果如下:

[1 2 3]  [2]
登錄后復制

其中 [2] 就是 a[1:2] 切片操作的結果。

從數組或切片生成新的切片擁有如下特性:

  • 取出的元素數量為:結束位置 – 開始位置;

  • 取出元素不包含結束位置對應的索引,切片最后一個元素使用 slice[len(slice)] 獲取;

  • 當缺省開始位置時,表示從連續區域開頭到結束位置;

  • 當缺省結束位置時,表示從開始位置到整個連續區域末尾;

  • 兩者同時缺省時,與切片本身等效;

  • 兩者同時為 0 時,等效于空切片,一般用于切片復位。

根據索引位置取切片 slice 元素值時,取值范圍是(0~len(slice)-1),超界會報運行時錯誤,生成切片時,結束位置可以填寫 len(slice) 但不會報錯。【

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
日产精品99久久久久久| 久久精品国产精品亚洲艾| 日韩GAY小鲜肉啪啪18禁| 久久精品麻豆日日躁夜夜躁| 久久亚洲精品无码aⅴ大香| 国产精品乱码高清在线观看| 国内精品国产成人国产三级| 亚洲av无码国产精品色在线看不卡| 亚洲欭美日韩颜射在线二| 在线观看麻豆精品国产不卡| 精品久久久久久无码中文字幕一区 | 精品无码av一区二区三区 | 国产精品福利影院| 国产午夜精品一区二区三区极品| 国产精品蜜芽在线观看| 国产成人精品视频在放| 久久久久精品国产亚洲AV无码| 久久精品国产清高在天天线| 99re热久久精品这里都是精品| 人妻少妇精品视中文字幕国语| 香蕉久久夜色精品国产小说| 亚洲午夜精品久久久久久人妖| 无码国产精品一区二区免费16| 无码人妻精品一区二区三 | 日韩综合在线观看| 久久精品国产亚洲av日韩| 亚洲高清专区日韩精品| 日韩免费高清大片在线| 亚洲一日韩欧美中文字幕在线| 日韩经典午夜福利发布| 日韩精品专区在线影院重磅| 亚洲欧美日韩综合久久久| 2021免费日韩视频网| 在线精品日韩一区二区三区| 日韩精品人妻一区二区三区四区 | 久久水蜜桃亚洲av无码精品麻豆| 无码精品一区二区三区免费视频 | 国产精品无码一区二区在线观| 精品国产一区二区三区| 韩国精品福利一区二区三区| 日韩精品久久不卡中文字幕 |