/**相當於長度可以擴張的陣列
經過陣列擷取的片段就是切片
*/func
main01()
// 擷取陣列的前9位
slice := array[0:
9]fmt.
printf
("array的資料型別是%t\n"
, array)
fmt.
printf
("slice的資料型別是%t,值是%v\n"
, slice, slice)
// 下標為0開始擷取5位
slice = array[0:
5]fmt.
printf
("slice的資料型別是%t,值是%v\n"
, slice, slice)
// 從0開始擷取5位
slice = array[:5
] fmt.
printf
("slice的資料型別是%t,值是%v\n"
, slice, slice)
// 從下標0開始擷取全部
slice = array[0:
] fmt.
printf
("slice的資料型別是%t,值是%v\n"
, slice, slice)
// 擷取全部
slice = array[:]
fmt.
printf
("slice的資料型別是%t,值是%v\n"
, slice, slice)
}func
main()
fmt.
printf
("slice的資料型別是%t\n"
, slice)
fmt.
printf
("slice的長度是%d,值是%v\n"
,len
(slice)
, slice)
// 往切片裡邊新增元素
slice =
(slice,0)
fmt.
printf
("slice的長度是%d,值是%v\n"
,len
(slice)
, slice)
slice =
(slice,11,
22,33)
fmt.
printf
("slice的長度是%d,值是%v\n"
,len
(slice)
, slice)
// 在來熟悉一下遍歷陣列
for i :=
0; i <
len(slice)
; i++
for index, value :=
range slice
}把乙個陣列改變為切片只需要使用slice來擷取即可 這裡的使用方法跟php很類似,簡單了解即可
在go裡陣列是固定的不變的,除非使用擷取來改變型別為切片,否則無法擴容
Go 復合資料型別 切片 slice
切片 package main import fmt math rand time func main arr1 int arr2 make int,6,8 arr3 make int,6 fmt.printf 長度len d,容量cap d n len arr cap arr 6 6 fmt.pr...
Golang復合型別 切片
go 語言切片是對陣列的抽象。go 陣列的長度不可改變,在特定場景中這樣的集合就不太適用,go中提供了一種靈活,功能強悍的內建型別切片 動態陣列 與陣列相比切片的長度是不固定的,可以追加元素,在追加時可能使切片的容量增大 切片是一種方便 靈活且強大的包裝器。切片本身沒有任何資料。它們只是對現有陣列的...
go 復合型別
1.陣列 1 陣列是擁有固定長度且擁有零個或者多個相同資料型別元素的序列。2 初始值預設為元素型別的零值 3 如果 出現在陣列長度的位置,則陣列的長度由初始化陣列的元素個數決定 4 陣列長度是陣列型別的一部分,3 int 和 4 int 是不同的型別,不能互相賦值 也就是說陣列長度在編譯時就已經確定...