Go语言语法-循环for

前言

在 Go 里,只有一种 for 循环语法,但它可以灵活地写成三种常见形式。

经典三段式(类似 C/Java)

1
2
3
for i := 0; i < 10; i++ {
fmt.Println(i)
}

条件循环(类似 while)

1
2
3
4
5
i := 0
for i < 10 {
fmt.Println(i)
i++
}

无限循环

break / return 退出

1
2
3
4
for {
fmt.Println("loop")
break // 或 return
}

遍历切片/数组/字符串(range)

1
2
3
4
nums := []int{2, 4, 6}
for idx, val := range nums {
fmt.Printf("index=%d value=%d\n", idx, val)
}

注意

  • Go 没有 while 关键字,用 for 就能实现。
  • 循环变量 i 只在循环体内有效(作用域规则)。
  • 如果只要值不要索引,用 _ 占位:
    1
    for _, v := range nums { ... }