专栏首页Golang语言社区厚土Go学习笔记 | 21. range用法

厚土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, %c\n", i, c)
}

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

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

运行结果如下

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

本文分享自微信公众号 - Golang语言社区(Golangweb),作者:厚土火焰山

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-12-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Golang 语言范围(Range)

    Go 语言中 range 关键字用于for循环中迭代数组(array)、切片(slice)、链表(channel)或集合(map)的元素。在数组和切片中它返回元...

    李海彬
  • Go 语言范围(Range)

    Go 语言中 range 关键字用于for循环中迭代数组(array)、切片(slice)、链表(channel)或集合(map)的元素。在数组和切片中它返回元...

    李海彬
  • 【Go 语言社区】Go 语言范围(Range)

    Go 语言中 range 关键字用于for循环中迭代数组(array)、切片(slice)、链表(channel)或集合(map)的元素。在数组和切片中它返回元...

    李海彬
  • 学习猿地 python教程 django教程10 Django中的用户认证

    Django带有一个用户认证系统。它处理用户帐户,组,权限和基于cookie的用户会话。本文档的这一部分解释了默认实现如何开箱即用,以及如何[扩展和定制](ht...

    学习猿地
  • 学习猿地 python教程 django教程10 Django中的用户认证

    Django带有一个用户认证系统。它处理用户帐户,组,权限和基于cookie的用户会话。本文档的这一部分解释了默认实现如何开箱即用,以及如何[扩展和定制](ht...

    学习猿地
  • 拳打TPU,脚踢英特尔,亚马逊自研CPU和AI云芯片曝光!

    本周一,亚马逊推出首款自研Arm架构云服务器CPU Graviton,目标直指英特尔;

    新智元
  • 服务器未能识别 HTTP 标头 SOAPAction 的值

    SOAPAction HTTP request header被用来标识SOAP HTTP请求的目的地,其值是个URI地址。SOAP发送并不限制格式、URI特征或...

    张善友
  • 11.24 VR扫描:苹果公布VoxelNet技术,通过雷达识别周围3D物体

    VRPinea
  • python数据科学系列:pandas入门详细教程

    前2篇分别系统性介绍了numpy和matplotlib的入门基本知识,今天本文自然是要对pandas进行入门详细介绍,通过本文你将系统性了解pandas为何会有...

    luanhz
  • 人体数据传输,Teledildonics或将引领VR成人新方向

    VRPinea

扫码关注云+社区

领取腾讯云代金券