遍历切片
Coddy Go 中的切片和映射 课程的第 9 课,共 21 课。
就像处理数组时一样,我们可以使用 for 循环遍历切片。下面来编写一个示例:
假设我们有一个这样的切片:
str := []string{"Python","Golang","Rust","JavaScript","Haskell"}
for i := 0; i < len(str); i++ {
fmt.Println(i, str[i])
}这里我们使用 <strong>len()</strong> 函数,从 0 遍历到切片的长度,得到以下结果:
0 Python
1 Golang
2 Rust
3 JavaScript
4 Haskell这里没有什么新内容,不过我们来使用一个名为 <strong>range</strong> 的新关键字,它可以让我们遍历切片。语法如下:
for index, value := range str {
fmt.Println(index, value)
}在这个示例中,我们使用 <strong>range</strong> 遍历 <strong>str</strong> 切片的元素,每次循环都会提供元素的索引和该索引对应的值。
这样得到的结果应该和之前一样:
0 Python
1 Golang
2 Rust
3 JavaScript
4 Haskell如果不需要索引,可以用下划线代替键来省略它:
for _, value := range str {
fmt.Println(value)
}
挑战
简单在给定的代码中,我们定义了一个整数切片。
- 使用
<strong>range</strong>关键字遍历切片,检查每个数字,判断它是否为偶数 - 如果一个数字是偶数,就将它加到一个变量中,这个变量用于保存偶数的总和
亲手试试
package main
import "fmt"
func main() {
// 包含 10 个数字的切片。不要修改这里!
numbers := []int{45, 60, 3, 4, 5, 80, 7, 8, 9, 10}
// 初始化一个变量,用来存储偶数之和
var sum int
// 遍历切片
// 检查当前数字是否为偶数
// 如果是,就将它加到总和中
// 将总和打印到屏幕上
fmt.Println("Sum of even numbers:", sum)
}Go 中的切片和映射中的所有课
自己练习: Go 在线编译器