For 循环语句
在 Go 语言中, for 循环语句是有且仅有的循环语句, 没有之一.
语法
for <condition> {
}
无限循环
// 无限循环
for {
// ...
}
// 无限循环这样写也可以
for ;; {
// ...
}
需要注意的是, 无限循环内通常需要配合
break
等跳出语句, 以免造成死循环.
条件循环
// 条件循环
for i := 0; i < 10; i++ {
// ...
}
我们用条件循环写个小例子, 比如计算 1-100 的和
// for_test.go
package basic
import (
"testing"
)
// 测试使用条件循环计算 1-100 的和
func TestFor2(t *testing.T) {
sum := 0
for i := 1; i <= 100; i++ {
sum += i
}
t.Logf("sum = %d", sum)
}
运行测试
go test -v for_test.go
不出意外的话, 输出如下:
=== RUN TestFor2
--- PASS: TestFor2 (0.00s)
for_test.go:21: sum = 5050
PASS
for range
在实际操作中, 我们更多的会操作集合数据, 比如切片, 对象集等. 更多的会使用 for...range
语句.
也是循环语句, 可以当作是 for 语句的变种,在某些场景下会更易于理解和使用. 好比正方形和长方形的关系.
//
for index, value := range list {
}
// 只需要索引, 可以用 _ 代替 value
for index, _ := range list {
}
// 只需要值, 可以用 _ 代替 index
for _, value := range list {
}