go基礎類型~數組和切片

一 數組
1 數組的長度一旦定義不能變,長度屬於數組的一部分,不同長度數組也不同,哪怕同一數據類型
2 定義方式
var a [3]string #定義長度爲3的數組
var a [...]string{1,2,3,4} #不定長數組,長度由成員決定
var a [5]string{0:1,4:5} #根據下標:值的方式進行賦值
var a
3 遍歷方式
1 for k,v:=range a{fmt.Println(kv) }#推薦這種方式
2 for i:=0;i<len(a);i++ { a[i]} #更改數據成員值的時候可以使用這個
4 注意:
1 數組是不可變類型,無法增減成員,但是可以改變其中的值
var a [3]string{1,2,3}
func c(a *[3]string){a[0]=2}
func(a)
二 切片
1 切片(Slice)是一個擁有相同類型元素的可變長度的序列。它是基於數組類型做的一層封裝。它非常靈活,支持自動擴容。切片是一個引用類型,它的內部結構包含地址、長度和容量。切片一般用於快速地操作一塊數據集合
2 特點
1 本身不保存數據,指向的是底層的引用
2 長度取決於內部的元素個數,是可增減成員
2 定義方式#看下面的例子裏面不包含長度
var a []string
var a []string{1,1,2,3}
var a = make([]int, len,cap)
len(a) 長度 和數組一致,用len(a)判斷是否切片爲空 cap(a)求容量
3 由於是引用類型,所以切片的複製後,新的對象改變成員值也會影響原切片的值
4 切片的遍歷和數組一樣的
5 切片增加成員-append()函數-必須用變量接受append的返回值
a=append(a,5,6,7)
a=append(a,b(切片))
6 切片減少成員-不存在刪除函數
a[0:3]-我們可以理解成根據下標操作數值
a[0:0]-清除全部

一 數組
1 數組的長度一旦定義不能變,長度屬於數組的一部分,不同長度數組也不同,哪怕同一數據類型
2 定義方式
var a [3]string #定義長度爲3的數組
var a [...]string{1,2,3,4} #不定長數組,長度由成員決定
var a [5]string{0:1,4:5} #根據下標:值的方式進行賦值
var a
3 遍歷方式
1 for k,v:=range a{fmt.Println(kv) }#推薦這種方式
2 for i:=0;i<len(a);i++ { a[i]} #更改數據成員值的時候可以使用這個
4 注意:
1 數組是不可變類型,無法增減成員,但是可以改變其中的值
var a [3]string{1,2,3}
func c(a *[3]string){a[0]=2}
func(a)
二 切片
1 切片(Slice)是一個擁有相同類型元素的可變長度的序列。它是基於數組類型做的一層封裝。它非常靈活,支持自動擴容。切片是一個引用類型,它的內部結構包含地址、長度和容量。切片一般用於快速地操作一塊數據集合
2 特點
1 本身不保存數據,指向的是底層的引用
2 長度取決於內部的元素個數,是可增減成員
2 定義方式#看下面的例子裏面不包含長度
var a []string
var a []string{1,1,2,3}
var a = make([]int, len,cap)
len(a) 長度 和數組一致,用len(a)判斷是否切片爲空 cap(a)求容量
3 由於是引用類型,所以切片的複製後,新的對象改變成員值也會影響原切片的值
4 切片的遍歷和數組一樣的
5 切片增加成員-append()函數-必須用變量接受append的返回值
a=append(a,5,6,7)
a=append(a,b(切片))
6 切片減少成員-不存在刪除函數
a[0:3]-我們可以理解成根據下標操作數值
a[0:0]-清除全部

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章