go語言切片

2021-10-02 04:00:37 字數 950 閱讀 3085

切片(slice)

是乙個擁有相同型別元素的可變長度的序列,他是基於陣列型別做的一層封裝,非常靈活,支援自動擴容。切片是乙個引用型別,他的內容結構包含位址、長度、容量。用於快速操作一塊資料集合。

切片的本質:對底層陣列的封裝,包含三個資訊:底層陣列的指標、切片的長度、切片的容量。

1.切片定義

var name[

]t//name:變數,t:元素型別

2.定義切片並初始化

package main

import

"fmt"

func

main()

fmt.

printf

("長度:%d,容量:%d\n"

,len

(num)

,cap

(num))}

//輸出:長度:5,容量:5

3.從陣列得到切片

package main

import

"fmt"

func

main()

num2 := num[0:

4]fmt.

println

(num2)

}//輸出:[1 2 3 4]

4.動態建立切片,使用make([ ]t,size,cap)函式。

(size:切片中元素數量,cap:切片容量)

package main

import

"fmt"

func

main()

//輸出:[0 0]

5.切片不能直接比較。不能使用==操作符來判斷兩個切片是否含有全部相等的元素,切片合法的操作是和nil做比較。不過判斷乙個切片是否為空使用 len(slice) == 0,而不能使用slice == nil。

Go語言切片

go語言切片 go語言切片是對陣列的抽象 go 陣列的長度不可改變,在特定場景中這樣的集合就不太適用,go中提供了一種靈活,功能強悍的內建型別切片 動態陣列 與陣列相比切片的長度是不固定的,可以追加元素,在追加時可能使切片的容量增大。宣告乙個未指定大小的陣列來定義切片 var identifier ...

go語言 切片

一 概述 low 陣列下標的起點 high 陣列下標的結束點 不包括此點 arr low arr high len 長度 high low cap 容量 max low 二 切片的長度與容量 package main import fmt func main slice arr 0 3 5 fmt....

Go語言 切片

因為陣列的長度是固定的並且陣列長度屬於型別的一部分,所以陣列有很多的侷限性。例如 func arraysum x 3 int int return sum 這個求和函式只能接受 3 int型別,其他的都不支援。再比如,a 3 int陣列a中已經有三個元素了,我們不能再繼續往陣列a中新增新元素了。切片...