一、概述low:陣列下標的起點 high:陣列下標的結束點(不包括此點) [arr[low]:arr[high])
len:長度=high-low cap:容量= max-low
二、切片的長度與容量
package main
import "fmt"
func main()
slice := arr[0:3:5]
fmt.println("slice=", slice) // 列印切片
fmt.println("len(slice)=", len(slice)) // 長度 3-0
fmt.println("cap(slice)=", cap(slice)) // 容量 5-0
fmt.println("****************************************=")
slice = arr[1:4:5]
fmt.println("slice=", slice) // 列印切片 從下標1開始
fmt.println("len(slice)=", len(slice)) // 長度 4-1
fmt.println("cap(slice)=", cap(slice)) // 容量 5-1
}
三、切片的建立
package main
import "fmt"
func main()
fmt.printf("len=%d, =%d\n", len(arr), cap(arr))
// 切片 裡面為空,或者... ,切片的長度和容量可以不固定
slice := int{}
fmt.printf("len=%d, cap=%d\n", len(slice), cap(slice))
// 給切片的末尾追加乙個元素
}
package main
import "fmt"
func main()
fmt.println("slice1=", slice1)
// 建立的方式2:借助make函式 make(切片型別,長度,容量)
slice2 := make(int, 4, 6)
fmt.printf("len=%d, cap=%d\n", len(slice2), cap(slice2))
// 建立方式3:沒有指定容量,容量和長度一樣
slice3 := make(int, 5)
fmt.printf("len=%d, cap=%d\n", len(slice3), cap(slice3))
}
Go語言切片
go語言切片 go語言切片是對陣列的抽象 go 陣列的長度不可改變,在特定場景中這樣的集合就不太適用,go中提供了一種靈活,功能強悍的內建型別切片 動態陣列 與陣列相比切片的長度是不固定的,可以追加元素,在追加時可能使切片的容量增大。宣告乙個未指定大小的陣列來定義切片 var identifier ...
Go語言 切片
因為陣列的長度是固定的並且陣列長度屬於型別的一部分,所以陣列有很多的侷限性。例如 func arraysum x 3 int int return sum 這個求和函式只能接受 3 int型別,其他的都不支援。再比如,a 3 int陣列a中已經有三個元素了,我們不能再繼續往陣列a中新增新元素了。切片...
go語言切片
切片 slice 是乙個擁有相同型別元素的可變長度的序列,他是基於陣列型別做的一層封裝,非常靈活,支援自動擴容。切片是乙個引用型別,他的內容結構包含位址 長度 容量。用於快速操作一塊資料集合。切片的本質 對底層陣列的封裝,包含三個資訊 底層陣列的指標 切片的長度 切片的容量。1.切片定義 var n...