Go-simple(3)基礎教程-容器型別
阿新 • • 發佈:2020-12-23
容器型別包括陣列、切片和map。
1 陣列
陣列大小是固定的。
首先定義陣列,程式碼如下:
peopleArray := [...] string{"令狐沖", "任盈盈", "東方不敗"}
通過長度遍歷陣列:
fmt.Println("通過直接訪問陣列遍歷:")
var i int
for i = 0; i < 3; i++ {
fmt.Println(i, peopleArray[i])
}
輸出:
通過range遍歷陣列:
fmt.Println("通過range關鍵字遍歷:" )
i = 0
for j, str := range peopleArray {
fmt.Println(j, str)
}
fmt.Println("通過range只輸出元素:")
for _, str := range peopleArray {
fmt.Println(str)
}
輸出:
2 切片slice
切片slice可以認為是動態陣列
首先定義slice,程式碼如下:
pepoleSlice := [] string {"令狐沖"}
也可以make建立slice,程式碼如下:
var pepoleSlice = make([]string ,1,1)
輸出slice的長度和容量,程式碼如下:
var len int = len(pepoleSlice)
fmt.Println("切片slice的長度:", len)
var capacity int = cap(pepoleSlice)
fmt.Println("切片slice的容量:", capacity)
輸出:
Slice中增加元素,程式碼如下:
pepoleSlice = append(pepoleSlice, "任盈盈")
fmt.Print("切片slice增加1個元素:" )
fmt.Println(pepoleSlice)
輸出:
Slice中增加多個元素,程式碼如下:
pepoleSlice = append(pepoleSlice, "嶽不群", "風清揚")
fmt.Print("切片slice增加多個元素:")
fmt.Println(pepoleSlice)
輸出:
拷貝slice,程式碼如下:
pepoleSlice2 := make([]string, len, capacity)
copy(pepoleSlice2, pepoleSlice)
fmt.Print("切片slice拷貝後新的切片:")
fmt.Println(pepoleSlice2)
輸出:
擷取slice建立新的slice,程式碼如下:
pepoleSlice3:= pepoleSlice[0:1]
fmt.Print("切片slice擷取後新的切片:")
fmt.Println(pepoleSlice3)
輸出:
3 map
首先定義和初始化一個map,程式碼如下:
// 定義map
peopleMap := make(map[string]string)
// map 增加資料
peopleMap["1"] = "令狐沖"
peopleMap["2"] = "任盈盈"
peopleMap["3"] = "東方不敗"
輸出map,程式碼如下:
fmt.Println("輸出map:")
for id, people := range peopleMap {
fmt.Println(id, people)
}
輸出:
判斷元素是否存在,程式碼如下:
fmt.Println("判斷map中元素是否存在:")
_, ok := peopleMap ["令狐沖"]
if (ok) {
fmt.Println("人物存在")
} else {
fmt.Println("人物不存在")
}
輸出:
刪除元素,程式碼如下:
delete(peopleMap, "1")
// 輸出map
fmt.Println("刪除map中元素後:")
for id := range peopleMap {
fmt.Println(id, peopleMap[id])
}
輸出: