7 控制结构
[TOC]
控制结构
go运行时从main函数开始逐条向下执行,通过一些内置语法糖进行分支跳转,如有条件的跳转if else,无条件跳转go to。
for 循环
go 内置的循环语法糖只有 for 循环一种,没有while、do while
可以通过 break 打断当前层for循环。
continue 跳过当前次循环。
for {}
func main() {
i := 0
for {
i++
if 50 == i {
continue // 跳出这次循环不往下执行
}
fmt.Printf("第%d次循环\n",i)
if 100 == i {
break // 打断循环
}
}
}
for 条件 {}
for 表达式1;条件;表达式2 {}
for k,v := range 集合{}
集合可以是数组、slice、string、map、chan。
条件判断 if else
条件判断
if 条件 {}
if 表达式;条件 {}
if 条件 {} else if {} else {}
switch
switch根据传入参数执行符合条件的分支。
case检测条件进入分支,可以使用“,”隔开配置多个条件。
case后面不需要break,fallthrough击穿执行下一层case。
default语句在所有case不符合条件时执行default。
switch
标签和跳转 break、continue、goto
使用标签标识一个位置(必须在函数内),用于break、continue、goto跳转。
break 从 for、switch、select中跳转到标签。多用于打断多重循环,break跳转到循环外标签是不会再进循环。
continue 跳出当前次循环,跳转到外层标签但依然会再次进入循环。
goto 跳转到函数内任何位置
return 结束函数、方法的执行
return 也会引发控制流程的跳转,用于函数、方法的退出并可携带返回值。
return需要注意的是它并不是一个原子性操作,这在一个函数或方法中return与defer一起使用时会有一个陷阱。
Last updated