1. 程式人生 > 其它 >Go-simple(3)基礎教程-容器型別

Go-simple(3)基礎教程-容器型別

技術標籤:Gogo

容器型別包括陣列、切片和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])
	}

輸出:
在這裡插入圖片描述