011_go语言中的range遍历

代码演示

package main

import "fmt"

func main() {

	nums := []int{2, 3, 4}
	sum := 0
	for _, num := range nums {
		sum += num
	}
	fmt.Println("sum:", sum)

	for i, num := range nums {
		if num == 3 {
			fmt.Println("index:", i)
		}
	}

	kvs := map[string]string{"a": "apple", "b": "banana"}
	for k, v := range kvs {
		fmt.Printf("%s -> %s\n", k, v)
	}

	for k := range kvs {
		fmt.Println("keys:", k)
	}

	for i, c := range "go" {
		fmt.Println(i, c)
	}
}

代码运行结果

sum: 9
index: 1
a -> apple
b -> banana
keys: a
keys: b
0 103
1 111

代码解读:

  • 可以用range对slice和array中的元素求和
  • range在对数组和slice中的每项索引和值进行访问,如果不需要索引,就用空白标识符“_”来忽略它
  • range也可以在map映射中迭代键值对,当然也可以只遍历map的键
  • range在字符串中迭代unicode码,第一个返回值是字符的起始字节位置,第二个是字符本身
posted @ 2018-03-28 19:10  Joestar  阅读(410)  评论(0编辑  收藏  举报