11-range

// range遍历各种数据结构中的元素

package main

import "fmt"

func main() {
	nums := []int{2, 3, 4}
	sum := 0
	for _, num := range nums { // 使用range来对切片中的数字求和,数组也是这样使用
		sum += num
	}
	fmt.Println("sum: ", sum)

	for i, num := range nums { // 在数组和切片上使用range都会返回每个条目的索引和值,上面的例子中,不需要返回的索引时,使用空白标识符来忽略它
		if num == 3 {
			fmt.Println("index: ", i)
		}
	}

	kvs := map[string]string{"a": "apple", "b": "banana"} // 在map上使用range将会迭代其中的键值对
	for k, v := range kvs {
		fmt.Printf("%s --> %s\n", k, v)
	}

	for k := range kvs { // range也可以只遍历map中的键值
		fmt.Println("key: ", k)
	}

	for i, c := range "go" { // 在字符串上使用range将会遍历unicode代码点,返回的第一个值是rune的索引,第二个值是rune自身
		fmt.Println(i, c)
	}
}

// go中byte就是uint8rune就是int32
上次修改: 10 January 2020