厚土Go学习笔记 | 21. range用法

时间:2022-05-06
本文章向大家介绍厚土Go学习笔记 | 21. range用法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

range是一个内置函数。可以遍历数组切片slice字典map

当遍历数组和切片的时候,返回的是索引和元素。

当遍历字典的时候,返回字典的键和值。

//range遍历切片的所有元素,并求和
fibo := []int{2,3,5,8,13,34,55}
sum := 0
for index, num := range fibo {
    sum += num
    fmt.Println(index, num, sum)
}
fmt.Println("sum:", sum)

如果你不需要 range 返回的某个值,比如 index,你可以把它写成 _ ,这个就可以忽略这个返回值了。

//range遍历切片的所有元素,并求和
fibo := []int{2,3,5,8,13,34,55}
sum := 0
for _, num := range fibo {
    sum += num
    fmt.Println(num, sum)
}
fmt.Println("sum:", sum)

range还可以遍历字符串

//range遍历字符串,返回字符索引和Unicode编码。
for i, c := range "go"{
    fmt.Printf("%d, %cn", i, c)
}

map 字典也是可以使用 range 遍历的

//range遍历字典,返回键值对。
kvs := map[string]string{"a":"apple", "b":"banana", "c":"cofox"}
for k, v := range kvs {
    fmt.Printf("%s -> %sn", k, v)
}

还是把完整代码拿出来看一下吧。

package main

import (
    "fmt"
)

func main() {
    //range遍历切片的所有元素,并求和
    fibo := []int{2,3,5,8,13,34,55}
    sum := 0
    for _, num := range fibo {
        sum += num
        fmt.Println(num, sum)
    }
    fmt.Println("sum:", sum)

    //range遍历字符串,返回字符索引和Unicode编码。
    for i, c := range "go"{
        fmt.Printf("%d, %cn", i, c)
    }

    //range遍历字典,返回键值对。
    kvs := map[string]string{"a":"apple", "b":"banana", "c":"cofox"}
    for k, v := range kvs {
        fmt.Printf("%s -> %sn", k, v)
    }
}

运行结果如下

2 2
3 5
5 10
8 18
13 31
34 65
55 120
sum: 120
0, g
1, o
a -> apple
b -> banana
c -> cofox