Go語言 切片長度和容量

2022-05-10 01:38:53 字數 746 閱讀 4724

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 儲存了三個一維陣列,每個一位陣列長...