Go 语言范围(Range)
在 Go 语言中,range
关键字用于迭代数组(array)、切片(slice)、集合(map)、通道(channel)或字符串等数据结构。它提供了一种简洁、安全、直观的方式来遍历集合中的元素。使用 range
表达式,可以有效减少代码的冗余和错误。
提示
本文所有示例代码可在 GitHub 下载。
Range 返回值
range
表达式返回一个值或两个值,其中第二个值是可选的。
- 在数组、切片、字符串中,会返回索引和元素值;
- 在集合(映射)中,会返回键值对的键,也就是 key-value 对的 key 值;
- 在通道中,则返回通道中的发送值。
如果在 range
表达式的左侧只使用了一个值,那么这个值是下表中的第一个值。
range 表达式 | 第一个值 | 第二个值(可选的) | |
---|---|---|---|
数组/切片 | Array 或者 slice a [n]E | 索引 i int | a[i] E |
字符串 | String s string type | 索引 i int | rune int |
集合/映射 | map m map[K]V | 键 k K | 值 m[k] V |
通道 | channel c chan E | 元素 e E | none |