Go语言中文文档-02流程控制

条件语句if

条件语句switch

Type Switch: 判断某个interface变量中实际存储的变量类型。

点击查看代码
switch x.(type){
    case type:
       statement(s)      
    case type:
       statement(s)
    /* 你可以定义任意个数的case */
    default: /* 可选 */
       statement(s)
Go switch默认每个case最后带有break,但可以使用fallthrough强制执行后面的case代码。

循环语句for

Go for循环的3种形式:

点击查看代码
for init; condition; post { }
for condition { }
for { }

循环控制Goto、Break、Continue

1.三个语句都可以配合标签(label)使用
2.标签名区分大小写,定以后若不使用会造成编译错误
3.continue、break配合标签(label)可用于多层循环跳出
4.goto是调整执行位置,与continue、break配合标签(label)的结果并不相同

条件语句select

类似于switch,但随机执行一个可运行的case。没有case可运行,将阻塞。
select中的case语句必须是一个channel操作
select中的default子句总是可运行的。
如果有多个case都可以运行,select会随机公平地选出一个执行,其他不会执行。
如果没有可运行的case语句,且有default语句,那么就会执行default的动作。
如果没有可运行的case语句,且没有default语句,select将阻塞,直到某个case通信可以运行。

循环语句range

range会复制对象, 所以尽量改用引用类型,使底层数据不被复制。

for 和 for range有什么区别?
主要是使用场景不同
for可以
遍历array和slice。
遍历key为整型递增的map。
遍历string。
for range可以完成所有for可以做的事情,却能做到for不能做的,包括。
遍历key为string类型的map并同时获取key和value。

遍历channel。

posted @ 2022-03-17 17:05  人生hh  阅读(43)  评论(0)    收藏  举报