//輸出結果建立乙個容量和長度均為6的slice
slice1 := int
//對slices1進行切片,長度為2容量為3
slice2 := slice1[1:3:3
] fmt.println(
"cap
", cap(slice2))
fmt.println(
"slice2
", slice2)
//修改乙個共同指向的元素
//兩個slice的值都會修改
slice2[0] = 11111
fmt.println(
"slice1
", slice1)
fmt.println(
"slice2
", slice2)
//增加乙個元素
) fmt.println(
"slice1:
", slice1)
fmt.println(
"slice2:
", slice2)
cap 2go語言內建乙個關鍵字range用於迭代集合,當然他也可以迭代slice,也可以使用 _ 來忽略我們不關心的元素,但是如果只關心index則不需這麼寫 for index,_ := range slice1。下在給出完整**slice2 [
2310
]slice1 [
511111102
6133
]slice2 [
1111110]
slice1: [
511111102
6133
]slice2: [
11111
1055555]
//建立乙個容量和長度均為6的slice
slice1 := int
for index, value :=range slice1
//可以忽略我們不關心的元素
//只關心value
for _, value :=range slice1
//只關心index, 可以不用 _
for index :=range slice1
//輸出結果建立乙個容量和長度均為6的slice
slice1 := int
for index, value :=range slice1
index: 0 value address : 0xc04204e088 slice1 value address 0xc04206a030slice1中value的位址是不斷變化的。而迭代的value值的位址沒有變化,這是因為value是乙個變數,為次迭代的時候賦不同的值。我們把**寫成下面這樣,你就清楚了index:
1 value address : 0xc04204e088 slice1 value address 0xc04206a038
index:
2 value address : 0xc04204e088 slice1 value address 0xc04206a040
index:
3 value address : 0xc04204e088 slice1 value address 0xc04206a048
index:
4 value address : 0xc04204e088 slice1 value address 0xc04206a050
index:
5 value address : 0xc04204e088 slice1 value address 0xc04206a058
var index, value int除了使用rang 也可以使用傳統的for迴圈來做迭代for index, value =range slice1
slice1 := int由於slice的特殊結構,有乙個指標指向乙個陣列for i, len := 1, len(slice1); i < len; i++
所以,slice做為方法的引數傳遞時,只會複製slice本身而不會複製slice底層的array.如果我們建立乙個int型別有100萬長度的slice ,把他傳遞給乙個方法時,只需要複製24個位元組就夠了。指標需要8個,長度和容量都是8個。
詳解go語言的array和slice 二
建立乙個容量和長度均為6的slice slice1 int 對slices1進行切片,長度為2容量為3 slice2 slice1 1 3 3 fmt.println cap cap slice2 fmt.println slice2 slice2 修改乙個共同指向的元素 兩個slice的值都會修改...
go語言基礎 陣列array
1.陣列 概念 儲存一組相同的資料型別的資料結構。特點 資料結構 記憶體上是連續空間。儲存資料特點 有序,可以重複。資料型別一致。定長 陣列一旦建立長度不能更改,但是可以更改儲存的資料。使用 建立陣列 var 陣列名 size 資料型別 0000000 var 陣列名 size 資料型別 陣列名 5...
C語言 array陣列的用法詳解
目錄 陣列是一種相同型別元素的集合 include include int main 不完全初始化,剩下的元素預設初始化0.char arr2 5 初始化 char arr 5 不完全初始化,剩下元素預設初始化0.初始化 char arr 5 ab 這是可行的,因為隱藏乙個 0 後面的0使我們自己給...