在 Go 语言中,只有一种循环语句 - For 语句,但该语句被赋予了强大的功能。
For 的基本语法
首先,我们来看看 for 语句的基本语法:
1 | for initialisation; condition; post { |
初看起来和 C (java) 中的 for 语句基本一致,除了少了 for 后面的括号。 因此,一个基本的写法如下:
1 | for i := 1; i < 10; i++ { |
注意,初始化的部分使用的是 “:=” 符号
变身为 While, Do..While
因为 for 语句中的 initialisation 和 post 这两个不是是可以省略的,因此可以用 for 来实现其它语言中需要 While 或 Do..While 的情况,如:
1 | n := 5 |
更复杂一定的例中是求两个数的最大公约数的代码段:
1 | x = 102 |
无限循环(死循环)
如果把 for 语句中的 condition 部分也去掉了,那就构成了无限循环,如:
1 | for { |
和其它语言一样,要停止无限循环,可以使用 break 语句。
循环一个数组(列表)
在一些语言中,为了简化对列表的迭代操作,发展出了 foreach 语句,在 Go 中,可以直接使用 for 来迭代数组(列表), 看下面的代码:
1 | names := []string{"tom", "jack", "tim"} |
在上面的代码中,每次迭代的数据及索引被赋值给 s 和 i 这两个变量。如果在循环中不需要处理索引,也可以将代码写为:
1 | names := []string{"tom", "jack", "tim"} |
迭代一个字典(map)
在 Go 语言中, for 语句也可以用来简化对字典(map)类型的迭代操作, 看下面的代码:
1 | ages := map[string]int { |