目录

映射

大体上来说,Go 中的映射是一个哈希表,是键值对的集合。 映射中所有的键都必须具有相同的类型,它们的值也是如此。 不过,可对键和值使用不同的类型。 例如,键可以是数字,值可以是字符串。 若要访问映射中的特定项,可引用该项的键。

声明和初始化映射

创建一个包含学生姓名和年龄的映射:

package main
​
import "fmt"
​
func main() {
    studentsAge := map[string]int{
        "john": 32,
        "bob":  31,
    }
    fmt.Println(studentsAge)
}

运行上述代码时,你会看到以下输出:

map[bob:31 john:32]

映射是动态的。 创建项后,可添加、访问或删除这些项。 让我们来了解这些操作。

添加项

make()
studentsAge := make(map[string]int)
studentsAge["john"] = 32
studentsAge["bob"] = 31
fmt.Println(studentsAge)

运行代码时,你会获得与之前相同的输出:

map[bob:31 john:32]

删除项

delete()
package main
​
import "fmt"
​
func main() {
    studentsAge := make(map[string]int)
    studentsAge["john"] = 32
    studentsAge["bob"] = 31
    delete(studentsAge, "john")
    fmt.Println(studentsAge)
}

运行代码时,你会获得以下输出:

map[bob:31]

映射中的循环

使用range即可遍历整个映射。

nameagerange
for name, age := range studentsAge {
        fmt.Printf("%s\t%d\n", name, age)
    }
_