Go語言切片筆記3 切片的本質make()函式

2021-10-08 21:25:38 字數 1229 閱讀 8233

package main

import

"fmt"

//切片的本質

///切片就是框柱了一塊連續的記憶體 屬於引用型別 真正的資料都儲存在陣列中

//make函式創造切片 使用了make 就開闢了記憶體

func

main()

//len(s5)=0 cap(s5)=0 s5!=nil

s6 :=

make([

]int,0

)//len(s6)=0 cap(s6)=0 s6!=nil

fmt.

printf

("s4=%v s4=%d cap=%d\n"

, s4,

len(s4)

,cap

(s4)

)//s4= s4=0 cap=0

fmt.

printf

("s5=%v s5=%d cap=%d\n"

, s5,

len(s5)

,cap

(s5)

)//s5= s5=0 cap=0

fmt.

printf

("s6=%v s6=%d cap=%d\n"

, s6,

len(s6)

,cap

(s6)

)//s6= s6=0 cap=0

//判斷切片是否為空 用len(s0)=0 不應該 s0=nil

//切片的賦值拷貝

s7 :=

int//這是把陣列封裝成切片

s8 := s7 // s7和s8都指向了同乙個底層陣列

fmt.

println

(s7, s8)

//[1 3 5] [1 3 5]

s7[0]

=1000

fmt.

println

(s7, s8)

//[1000 3 5] [1000 3 5]

//切片的遍歷

//1.索引遍歷

for i :=

0; i <

len(s7)

; i++

// 2 5

range

for a, b :=

range s7

// 1 3

}// 2 5

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中新增新元素了。切片...