1 if 分支语句
语法格式:
1 | if 布尔表达式 { |
1 | if 布尔表达式 { |
1 | if 布尔表达式1 { |
如果其中包含一个可选的语句组件(在评估条件之前执行),则还有一个变体。它的语法格式如下:
1 | if statement; condition { |
示例代码
1 | package main |
需要注意的是,num的定义在if里,那么只能够在该if..else语句块中使用,否则编译器会报错的。
2 switch分支语句
格式:
1 | switch var1 { |
2.1 fallthrough
如需贯通后续的case,就添加fallthrough
1 | package main |
case中的表达式是可选的,可以省略。如果该表达式被省略,则被认为是switch true,并且每个case表达式都被计算为true,并执行相应的代码块。
switch的注意事项
- case后的常量值不能重复
- case后可以有多个常量值
- fallthrough应该是某个case的最后一行。如果它出现在中间的某个地方,编译器就会抛出错误。
2.2 Type Switch
switch 语句还可以被用于 type-switch 来判断某个 interface 变量中实际存储的变量类型。
1 | switch x.(type){ |
1 | package main |
3 for 循环语句
语法结构:
1 | for init; condition; post { } |
初始化语句只执行一次。在初始化循环之后,将检查该条件。如果条件计算为true,那么{}中的循环体将被执行,然后是post语句。post语句将在循环的每次成功迭代之后执行。在执行post语句之后,该条件将被重新检查。如果它是正确的,循环将继续执行,否则循环终止。
在for循环中声明的变量仅在循环范围内可用。
3.1 for 循环变体
所有的三个组成部分,即初始化、条件和post都是可选的。
1 | // 效果与while相似 |
1 | // 效果与for(;;) 一样 |
for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环
1 | for key, value := range oldMap { |
3.2 跳出for 循环语句
- break:跳出循环体。break语句用于在结束其正常执行之前突然终止for循环
- continue:跳出一次循环。continue语句用于跳过for循环的当前迭代。在continue语句后面的for循环中的所有代码将不会在当前迭代中执行。循环将继续到下一个迭代。
4 goto语句
goto:可以无条件地转移到过程中指定的行。
语法结构:
1 | goto label; |
5 参考
- Golang中国,https://www.qfgolang.com/