Files
the-way-to-go_ZH_CN/eBook/08.3.md
Unknwon 80344c8375 8.4
2015-02-23 02:49:28 -05:00

72 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 8.3 for-range 的配套用法
可以使用 for 循环构造 map
```go
for key, value := range map1 {
...
}
```
第一个返回值 key 是 map 中的 key 值,第二个返回值则是该 key 对应的 value 值;这两个都是仅 for 循环内部可见的局部变量。其中第一个返回值key值是一个可选元素。如果你只关心值可以这么使用
```go
for _, value := range map1 {
...
}
```
如果只想获取 key你可以这么使用
```go
for key := range map1 {
fmt.Printf("key is: %d\n", key)
}
```
示例 8.5 [maps_forrange.go](examples/chapter_8/maps_forrange.go)
```go
package main
import "fmt"
func main() {
map1 := make(map[int]float32)
map1[1] = 1.0
map1[2] = 2.0
map1[3] = 3.0
map1[4] = 4.0
for key, value := range map1 {
fmt.Printf("key is: %d - value is: %f\n", key, value)
}
}
```
输出结果:
key is: 3 - value is: 3.000000
key is: 1 - value is: 1.000000
key is: 4 - value is: 4.000000
key is: 2 - value is: 2.000000
注意到map不是按照key的顺序排列的也不是按照value的序排列的。
问题 8.1 下面这段代码的输出是什么?
```go
capitals := map[string] string {"France":"Paris", "Italy":"Rome", "Japan":"Tokyo" }
for key := range capitals {
fmt.Println("Map item: Capital of", key, "is", capitals[key])
}
```
**练习 8.1**
创建一个map来保存每周7天的名字将它们打印出来并且测试是否存在tuesday和hollyday。
## 链接
- [目录](directory.md)
- 上一节:[测试键值对是否存在及删除元素](08.2.md)
- 下一节:[map 类型的切片](08.4.md)