前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >厚土Go学习笔记 | 21. range用法

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

作者头像
李海彬
发布2018-03-28 11:46:04
7010
发布2018-03-28 11:46:04
举报
文章被收录于专栏:Golang语言社区

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

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

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

代码语言:javascript
复制
//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,你可以把它写成 _ ,这个就可以忽略这个返回值了。

代码语言:javascript
复制
//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还可以遍历字符串

代码语言:javascript
复制
//range遍历字符串,返回字符索引和Unicode编码。
for i, c := range "go"{
    fmt.Printf("%d, %c\n", i, c)
}

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

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

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

代码语言:javascript
复制
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, %c\n", i, c)
    }

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

运行结果如下

代码语言:javascript
复制
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
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-12-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档