Go进阶03 Range

2017-08-24 13:03:48

range 关键字用于for循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引值,在集合中返回 key-value 对的 key 值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package main

import "fmt"

func main() {

// range for slice
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)
}
}

// range for map
mp := map[string]string{"1": "apple", "2":"banan"}
for k, v := range mp {
fmt.Printf("%s -- > %s\n", k, v)
}

// range for channel
queue := make(chan string, 2)
queue <- "one"
queue <- "two"
close(queue)

for v := range queue {
fmt.Println(v)
}


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

输出结果为

1
2
3
4
5
6
7
8
9
[tiger@bogon tiger]$ go run range.go 
sum: 9
index: 1
1 -- > apple
2 -- > banan
one
two
0 103
1 111

总结
range 关键字用于for循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素.


您的鼓励是我写作最大的动力

俗话说,投资效率是最好的投资。 如果您感觉我的文章质量不错,读后收获很大,预计能为您提高 10% 的工作效率,不妨小额捐助我一下,让我有动力继续写出更多好文章。