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

实例

package main
import "fmt" func main() { //这是我们使用range去求一个slice的和。使用数组跟这个很类似 nums := []int{2, 3, 4} sum := 0 for _, num := range nums { sum += num } fmt.Println("sum:", sum) //在数组上使用range将传入index和值两个变量。上面那个例子我们不需要使用该元素的序号,所以我们使用空白符"_"省略了。有时侯我们确实需要知道它的索引。 for i, num := range nums { if num == 3 { fmt.Println("index:", i) } } //range也可以用在map的键值对上。 kvs := map[string]string{"a": "apple", "b": "banana"} for k, v := range kvs { fmt.Printf("%s -> %s\n", k, v) } //range也可以用来枚举Unicode字符串。第一个参数是字符的索引,第二个是字符(Unicode的值)本身。 for i, c := range "go" { fmt.Println(i, c) } }

以上实例运行输出结果为:

sum: 9 index: 1 a -> apple b -> banana 0 103 1 111

Go 语言范围(Range)相关推荐

  1. go语言的range使用

    简言 1. range在map中遍历顺序是随机的,多次遍历的结果可能不同 2. range在数组中是从下标0开始递增遍历的,多次遍历的结果是相同的 实验如下图 代码如下 package main im ...

  2. Go语言自学系列 | golang for range循环

    视频来源:B站<golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! ...

  3. 《Go语言圣经》学习笔记 第八章 Groroutines和Channels

    <Go语言圣经>学习笔记 第八章 Groroutines和Channels 目录 Goroutines 实例:并发的Clock服务 实例:并发的Echo服务 Channels 并发的循环 ...

  4. 《Go语言圣经》学习笔记 第三章 基础数据类型

    <Go语言圣经>学习笔记 第三章 基础数据类型 目录 整型 浮点数 复数 布尔型 字符串 常量 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语言小白学习笔记, ...

  5. 《Go 语言程序设计》读书笔记 (五) 协程与通道

    Goroutines 在Go语言中,每一个并发的执行单元叫作goroutine.设想一个程序中有两个函数,假设两个函数没有相互之间的调用关系.一个线性的程序会先调用其中的一个函数,然后再调用另一个.如 ...

  6. ThinkPHP5.0-多语言切换

    这两天做得项目中需要多语言切换,于是乎就看了看文档,感觉有些乱,就使用了终极必杀--百度. 借鉴了网上各位大佬所集成.整理出一篇比较适合类似我这种比较菜的随笔吧. 请各位大佬轻虐.感谢. 首先,不说其 ...

  7. Go语言 基础语法学习 (未完待更......

    文章目录 一 Go语言结构 1 Go Hello world实例 2 执行Go程序 二 Go语言基础语法 1 Go标记 2 行分隔符 3 注释 4 标识符 5 一些关键字 6 Go语言的空格 7 格式 ...

  8. 计算机基础语言学习线路图

    计算机基础语言学习线路图 HTML HTML教程 HTML简介 HTML编辑器 HTML基础 HTML元素 HTML属性 HTML标题 HTML段落 HTML样式 HTML格式化 HTML引用元素 H ...

  9. Go字符串 【Go语言圣经笔记】

    字符串 一个字符串是一个不可改变的字节序列(笔者注:修改一个字符串会产生新的字符串).字符串可以包含任意的数据,包括byte值0,但是通常是用来包含人类可读的文本.文本字符串通常被解释为采用UTF8编 ...

最新文章

  1. 初识IBM刀片服务器
  2. 一些常用的基本的liunx命令:
  3. find:查找文件或目录
  4. php怎么截取数组最后元素,PHP如何获取数组最后一个元素的键和值?(图文+视频)...
  5. hadoop1.x异常
  6. Python爬取校花网,好看的妹子真多
  7. iCode代码托管的一些基本指令
  8. 集线器(hub),交换机以及路由器异同;冲突域和广播域详解
  9. 五个优秀的视频格式转换工具
  10. zibll子比主题6.7用户徽章功能详解及配置教程[V6.7新功能]
  11. Jarvis_Web 刷题记录_Bellone北洛
  12. 安卓点击跳转到微信公众号
  13. 单片机 串口通信实验
  14. unity 多点触控
  15. 自动摘要生成(一):最大边界相关算法(MMR)
  16. 价值1K的微信二维码活码源码
  17. C#中TreeView树配图片
  18. CTFHUB log
  19. 【生活】年化收益率、七日年化收益率这些事
  20. 篇3:嵌入式系统和嵌入式操作系统

热门文章

  1. OpenCV连接的组件Connected Components的实例(附完整代码)
  2. Qt Creator操作方法
  3. C语言实现段树segment tree(附完整源码)
  4. STL常用的算术和生成算法
  5. 本田da屏怎么进wince系统_东风本田LIFE“来福酱”上市
  6. rocketmq集群安装部署过程(4.0.0版本)、安装中的常见问题举例
  7. 在做自动化测试之前你需要知道的,转自:http://www.cnblogs.com/fnng/p/3653793.html
  8. volatile,可变参数,memset,内联函数,宽字符窄字符,国际化,条件编译,预处理命令,define中##和#的区别,文件缓冲,位域
  9. Spring2.5整合JPA
  10. js防止表单重复提交