映射
Coddy Go 中的切片和映射 课程的第 17 课,共 21 课。
映射是一种集合类型,就像数组和切片一样。它以键值对的形式存储数据,并支持快速查找值。
声明映射的语法如下:
products := map[string]int{}与声明数组和切片的变量类似,我们可以使用短声明(:=),也可以使用 var 关键字,后面跟上名称,再跟上 map 关键字,并在方括号内指定键的类型,最后指定值类型或元素类型。
切片和数组也是键值类型,但键只是索引。在映射中,只要某种类型可以比较,就可以用它作为键。通常使用 int 和 string 类型。
映射中的所有元素都应为相同类型,不能在同一个映射中混用不同类型。
我们来初始化映射:
products := map[string]int{
"iPhone": 1200,
"MacBook": 4000,
"Keyboard": 400,
}与切片和数组类似,我们可以使用键访问元素。在这里,键就是我们为每个元素定义的内容。例如,要获取键盘的价格:
fmt.Println("The Price of Keyboard:", products["Keyboard"])输出:
The Price of Keyboard: 400我们可以像打印切片一样,打印映射中的所有元素:
fmt.Println(products)结果如下:
map[iPhone:1200 MacBook:4000 Keyboard:400]
挑战
简单我们有一组书,每本书的页数各不相同,具体如下:
- Python 书有 300 页
- Golang 书有 400 页
- Rust 书有 500 页
使用 map 实现这一点,并将 Golang 书的页数打印到屏幕上。
亲手试试
package main
import "fmt"
func main() {
// 定义一个映射
// 输出 Golang 这本书的页数
}Go 中的切片和映射中的所有课
自己练习: Go 在线编译器