package main輸出import "fmt"
func main()
printslice(s)
// slice the slice to give it zero length.
s = s[:0]
printslice(s)
// extend its length.
fmt.println(s[:5])
s = s[:4]
printslice(s)
// drop its first two values.
s = s[2:]
printslice(s)
}func printslice(s int)
len=6 cap=6 [2 3 5 7 11 13]len=0 cap=6
[2 3 5 7 11]
len=4 cap=6 [2 3 5 7]
len=2 cap=4 [5 7]
第一次重新賦值s的指向底層陣列的0 第二次s還是指向0 第三次指向了2如果不理解可以看下圖一切都以開頭的那個指向的index 開始切片的
cap就是當前切片的0指向的位置開始到end
Go的切片 長度和容量
一 切片的宣告 切片可以看成是陣列的引用。在 go 中,每個陣列的大小是固定的,不能隨意改變大小,切片可以為陣列提供動態增長和縮小的需求,但其本身並不儲存任何資料。這是乙個陣列的宣告 var a 5 int 只指定長度,元素初始化為預設值0 var a 5 int 這是乙個切片的宣告 即宣告乙個沒有...
go語言中切片的長度和容量的區別
切片的長度,顯而易見的就是元素的個數,根據元素的個數進行返回具體的長度。切片的長度,更像是乙個警戒值,如果長度與容量相等,就會進行容量的擴容,比如 des makwww.cppcns.come int 3 5 程式設計客棧 此時,長度為3,容量為5,但是如果使用append 切片長度會變為4,再次使...
go語言 陣列和切片
目錄切片 var variable name size variable type 預設值為0eg var ss 10 int var s1 5 int方法一 for i 0 i len arry i 方法二 for index,value range array 儲存了三個一維陣列,每個一位陣列長...