切片(slice)
是乙個擁有相同型別元素的可變長度的序列,他是基於陣列型別做的一層封裝,非常靈活,支援自動擴容。切片是乙個引用型別,他的內容結構包含位址、長度、容量。用於快速操作一塊資料集合。
切片的本質:對底層陣列的封裝,包含三個資訊:底層陣列的指標、切片的長度、切片的容量。
1.切片定義
2.定義切片並初始化var name[
]t//name:變數,t:元素型別
3.從陣列得到切片package main
import
"fmt"
func
main()
fmt.
printf
("長度:%d,容量:%d\n"
,len
(num)
,cap
(num))}
//輸出:長度:5,容量:5
4.動態建立切片,使用make([ ]t,size,cap)函式。package main
import
"fmt"
func
main()
num2 := num[0:
4]fmt.
println
(num2)
}//輸出:[1 2 3 4]
(size:切片中元素數量,cap:切片容量)
5.切片不能直接比較。不能使用==操作符來判斷兩個切片是否含有全部相等的元素,切片合法的操作是和nil做比較。不過判斷乙個切片是否為空使用 len(slice) == 0,而不能使用slice == nil。package main
import
"fmt"
func
main()
//輸出:[0 0]
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中新增新元素了。切片...