Menu
CoddyTech

遍历切片

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)
}

 

challenge icon

挑战

简单

在给定的代码中,我们定义了一个整数切片。 

  • 使用 <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 在线编译器