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