Go 语言范围(Range)学习笔记
什么是 Range
Go 语言中的 range
关键字可以用于迭代数组(array)、切片(slice)、通道(channel) 或集合(map) 中的元素。它提供了一种简洁、高效的遍历方式。
数组和切片的遍历
我们可以使用 range
来遍历数组或切片中的元素,示例代码如下:
goCopy Codepackage main
import "fmt"
func main() {
numbers := []int{2, 4, 6, 8, 10}
for i, n := range numbers {
fmt.Println("index:", i, ", value:", n)
}
}
输出结果为:
Copy Codeindex: 0 , value: 2
index: 1 , value: 4
index: 2 , value: 6
index: 3 , value: 8
index: 4 , value: 10
在上面的代码中,我们通过 range
循环遍历了数组 numbers
中的所有元素,并且在每次循环中打印了元素的下标和对应的值。
需要注意的是,使用 range
遍历数组或切片时,每次循环都会返回两个值:元素的下标和对应的值。如果只需要其中一个值,则可以使用空白标识符 _
来忽略另一个值,示例代码如下:
goCopy Codepackage main
import "fmt"
func main() {
numbers := []int{2, 4, 6, 8, 10}
for _, n := range numbers {
fmt.Println("value:", n)
}
}
输出结果为:
Copy Codevalue: 2
value: 4
value: 6
value: 8
value: 10
集合的遍历
除了数组和切片,我们也可以使用 range
来遍历集合中的元素,示例代码如下:
goCopy Codepackage main
import "fmt"
func main() {
m := map[string]int{
"apple": 100,
"banana": 200,
"pear": 300,
}
for k, v := range m {
fmt.Println("key:", k, ", value:", v)
}
}
输出结果为:
Copy Codekey: apple , value: 100
key: banana , value: 200
key: pear , value: 300
在上面的代码中,我们通过 range
循环遍历了集合 m
中的所有键值对,并且在每次循环中打印了键和对应的值。
结论
Go 语言中的 range
关键字提供了一种简洁、高效的遍历方式,它可以用于迭代数组、切片、通道或集合中的元素。使用 range
遍历数组或切片时,每次循环都会返回两个值:元素的下标和对应的值;而使用 range
遍历集合时,则会返回键和对应的值。