一、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初始化赋值的方法。使用时需要根据实际情况选择适合自己的初始化方式,让代码更加简洁和直观。