

range 啊!它能自动帮你把数组、切片、Map 甚至字符串里的东西一个个拿出来。
range 会返回两个值:索引 (Index) 和 值 (Value)。
nums := []int{100, 200, 300}
for i, v := range nums {
fmt.Printf("索引:%d, 值:%d\n", i, v)
}
// 只要值?用 _ 丢掉索引
for _, v := range nums {
fmt.Println(v)
}
⚠️ 警告: 这里的 v 是值的副本!修改 v 不会影响原数组。
遍历 Map 时,返回的是 Key (键) 和 Value (值)。

m := map[string]string{"name": "秋香", "age": "18"}
for k, v := range m {
fmt.Println(k, v)
}
遍历字符串时,range 会智能地按 Rune (字符) 遍历,而不是按字节。这对于中文非常友好!
str := "Go语言"
// i 是字节位置,r 是字符(rune)
for i, r := range str {
fmt.Printf("%d: %c\n", i, r)
}
// 输出:
// 0: G
// 1: o
// 2: 语 (注意索引直接跳到了2,因为"语"占了3个字节)
// 5: 言
在名单里找到 "秋香" 并打印她的位置。
package main
import "fmt"
func main() {
names := []string{"春香", "夏香", "秋香", "冬香"}
for i, name := range names {
if name == "秋香" {
fmt.Println("找到秋香了!她在第", ______, "个位置")
}
}
}
任务: 填空处应该写什么?
答案: i
解析: i 是当前遍历到的索引。