Map 是高级语言中一种重要的数据结构,能够很方便的进行数据组织,主要都是<k,v>结构。除了slice,map,function的内建类型都可以作为key进行使用。因此,struct类型在不包含上述字段的时候,也可以作为key进行使用。
其在go语言中的定义格式如下所示:
1 Map的定义
Go语言中,可以通过自己手工使用基础语法进行map定义,也可以使用内置的make
方法进行定义。
1.1 基础定义方式
Go语言中,定义map的基本语法格式是:map[k类型] v类型 {k值,v值}
一个典型的Map定义实例如下:
package main
import "fmt"
func main() {
m := map[string]string {
"name":"ccmouse",
"course":"golang",
"site":"imooc",
"quality":"notbad",
}
fmt.Printf("Map value is %v", m)
}
这个map的k值类型是string
,v值的类型也是string
。
1.2 使用内置make方法
m := make(map[string]int) //k为string类型,v为int类型
var m2 map[string]int // 基础声明方法
2 Map的使用
map的使用查询用法和常见的其他语言差不多。通过m[key]
的形式进行获取对应的value值。如果key不存在,则获取到的是一个空行。
Go语言中不存在null这种空内存的情况,即使没有赋值,使用变量时候也不会报空指针的错误。而是一个zero值,常见的就是nil。
2.1 删除一个Map元素
Map中的删除操作还是有点意思的,使用的是内建的delete
方法。操作形式如下:
delete(m,"name") //m为map的变量名, name为key值。
2.2 Map的遍历
遍历元素是对map使用的一种形式,在Go语言中,同样使用range进行遍历最为方便。同样,你也可以选择使用传统的key,value对的形式。
由于map是一种无序的数据结构,所以遍历出来的数据元素也是无序的。
网友评论