第五章:控制结构
if-else结构
1 | if condition { |
当 if 结构内有 break、continue、goto 或者 return 语句时,Go 代码的常见写法是省略 else 部分
1 | if condition { |
1 | if err != nil { |
swith结构
它可以接受任意形式的表达式:
1 | switch var1 { |
变量 var1 可以是任何类型,而 val1 和 val2 则可以是同类型的任意值。
一旦成功地匹配到某个分支,在执行完相应代码后就会退出整个 switch 代码块。
继续执行后续分支的代码,可以使用 fallthrough
关键字
1 | switch i { |
可选的 default
分支可以出现在任何顺序,但最好将它放在最后。它的作用类似与 if-else
语句中的 else
,表示不符合任何已给出条件时,执行相关语句。
switch 语句的第二种形式是不提供任何被判断的值(实际上默认为判断是否为 true),然后在每个 case 分支中进行测试不同的条件。
1 | switch { |
for结构
基于计数器的迭代
1 | package main |
基于条件判断的迭代
1 | package main |
for-range结构
for ix, val := range coll { }
。
val
始终为集合中对应索引的值拷贝,因此它一般只具有只读性质,对它所做的任何修改都不会影响到集合中原有的值
1 | for pos, char := range str { |
标签和goto
for、switch 或 select 语句都可以配合标签(label)形式的标识符使用,即某一行第一个以冒号(:
)
1 | package main |