流程控制
if条件语句
module main
fn main() {
a := 10
b := 20
if a < b {
println('$a < $b')
} else if a > b {
println('$a > $b')
} else {
println('$a == $b')
}
}条件赋值(if表达式)
num := 777
// 简单的条件赋值
s := if num % 2 == 0 { 'even' } else { 'odd' }
println(s)
// "odd"
// 多条件赋值
a, b, c := if true { 1, 'awesome', 13 } else { 0, 'bad', 0 }
println(a)
println(b)
println(c)
likely/unlikely
_likely_和_unlikely_这两个内置函数实现的是跟C的likely一样的效果,可以实现给条件分支的性能做优化,一般的代码来说,使用的场景不多
match分支语句
match要求穷尽所有可能,所以基本都要带上else语句,else语句只能有一个。
匹配的值也可以多个,用逗号分隔:
match赋值(match表达式)
match的同时,加上mut ,可以修改匹配变量,通常是配合for in 语句结合使用
使用match判断联合类型的具体类型
for 循环语句
for的四种形式:
传统的:for i=0;i<100;i++ {}
为了简洁的目的,for里面的i默认就是mut可变的,不需要特别声明为mut,如果声明了编译器会报错
替代while:for i<100 {}
无限循环:for {}
遍历:for i in xxx {}
for in可以用来遍历字符串,数组,区间,字典这四种类型
遍历字符串:
遍历数组:
遍历区间:
遍历字典:
跟其他语言一样continue用来重新继续当前循环,break用来跳出当前循环
如果存在多层嵌套的循环,也可以使用continue label和break label来控制重新/跳出标签那一层的循环
for is语句
用于联合类型的类型循环判断(感觉没啥用,就是一个语法糖而已)
for循环结合or代码块
for select语句
for select语句主要在并发中使用,用来循环监听多个chanel,更多内容可以参考并发章节
goto语句
goto语句只能在函数内部跳转
最后更新于
这有帮助吗?