一、map初始化c
在Go語言中,map是一種無序的鍵值對的集合,通過哈希表實現。map使用make()函數創建,也可以使用以下語法創建:
var map_variable map[key_data_type]value_data_type
其中,map_variable 為map變數名,key_data_type 為鍵類型,value_data_type 為值類型。實例:
var testMap map[string]int
這是一個map類型的變數,鍵類型為string,值類型為int。在使用前必須使用make()函數創建並分配內存空間,同時建議初值設定為空map,不能直接賦值。具體實例代碼如下:
var testMap map[string]int
testMap = make(map[string]int)
或者可以使用以下方法:
testMap := make(map[string]int)
二、map初始化直接賦值
不僅可以使用make()函數創建map,還可以使用以下方式直接為map賦值初始化:
testMap := map[string] int{"one": 1, "two": 2, "three": 3}
以上代碼通過直接賦值的方式初始化map,鍵值對使用花括弧包含,每個鍵值對之間使用逗號分隔。需要注意的是,賦值部分的數據類型必須與map中定義的key_data_type和value_data_type對應。
三、map初始化賦值
1. 手動初始化
除了使用以上兩種方式初始化map,我們還可以手動通過循環為map賦值。以下是一段手動生成1-100的map代碼:
m := make(map[int]int)
for i:=1;i<=100;i++{
m[i] = i
}
以上代碼通過循環實現手動賦值,將1-100的數字作為鍵和值添加到map中。
2. 通過讀取文件進行初始化
如果有文件需要讀取到map中,可以使用以下代碼實現:
func main() {
dat, err := ioutil.ReadFile("./test.txt")
if err != nil {
panic(err)
}
stringsSplit := strings.Split(string(dat), "\n")
m := make(map[string]int)
for _, v := range stringsSplit {
lineSplit := strings.Split(v, ",")
m[lineSplit[0]] = strconv.Atoi(lineSplit[1])
}
}
上述代碼中,通過ioutil包中的ReadFile()方法讀取text.txt文件到dat變數中,然後通過strings包中Split()方法和換行符分割數據行,並通過for循環將每行的數據添加到map中。
總結
以上就是gomap的初始化方式,分別是map初始化c、map初始化直接賦值和map初始化賦值的方法。使用時需要根據實際情況選擇適合自己的初始化方式,讓代碼更加簡潔和直觀。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/206738.html