一、运算符
1.与c++基本一致,包含算数运算符,关系运算符,逻辑运算符,位运算符,赋值运算符。
2. 优先级
5 * / % << >> & &^
4 + - | ^
3 == != < <= > >=
2 &&
1 ||
二、控制语句
1.switch语句
switch 默认情况下 case 最后自带 break 语句,匹配成功后就不会执行其他 case,如果我们需要执行后面的 case,可以使用 fallthrough 。
fallthrough:强制执行后面的 case 语句,fallthrough 不会判断下一条 case 的表达式结果是否为 true。
2.select语句
select {
case communication clause :
statement(s);
case communication clause :
statement(s);
default : // 可选
statement(s);
}
每个 case 都必须是一个通信
所有 channel 表达式都会被求值
所有被发送的表达式都会被求值
如果任意某个通信可以进行,它就执行,其他被忽略。
如果有多个 case 都可以运行,Select 会随机公平地选出一个执行。其他不会执行。 否则:
如果有 default 子句,则执行该语句。
如果没有 default 子句,select 将阻塞,直到某个通信可以运行;Go 不会重新对 channel 或值进行求值
3.循环控制语句
循环控制语句
break语句:
用于循环语句中跳出循环,并开始执行循环之后的语句。
break 在 switch(开关语句)中在执行一条 case 后跳出语句的作用。
在多重循环中,可以用标号 label 标出想 break 的循环。
continue语句:跳过当前循环的剩余语句,然后继续进行下一轮循环。
goto:无条件转移到过程中指定行,与条件语句配合,实现条件转移、构成循环、跳出循环体等。