基础语法:语句与控制结构
四、语句#
语句块 用
{}表示。一般用于流程控制语句。语句组(子命令捕获) 用括号表示子命令,子命令不新建进程,不隔离变量作用域。
echo (len [5,6])语句 用
;或enter分割
换行符:
;或回车。续行符:使用
\+ 换行符跨行书写。1let long_expr = 3 \ 2 + 5 # 等价于 "3 + 5" 3 4let long_str = "Hello 5 World" # 等价于 "Hello\n World"注意:引号内的内容无须续行符。
- 注释
注释以
#开头
五、控制结构#
条件语句#
If 条件#
支持嵌套:
if cond1 { ... } else if cond2 { ... } else { ... }
不使用 then 关键字,代码块用 {} 包裹。
1if True {1} else {if False {2} else {3}}
2
3if x > 10 {
4 print("Large")
5} else if x == 10 {
6 print("Equal")
7} else {
8 print("Small")
9}Match 语句#
替代bash的switch语句。
支持在一个分支中匹配多个选项,多个选项之间用;或换行分隔。
支持正则匹配。
支持字面量直接匹配。并且不会被解读为变量。
1let fruit = "apple"
2match fruit {
3 pea,cherry => print "is my favor"
4 "*pple" => print "is my love"
5 r'\d' => print "is number"
6 _ => print "is others"
7}循环语句#
repeat 循环#
1repeat 10 {a += 1} # 输出[1,2...10]For 循环#
1for i in 0..5 { # 输出 0,1,2,3,4
2 print(i)
3}
4
5for i in [1,5,8] { print i }
6
7for i in *.md { #支持*扩展
8 Fs.cp i /tmp/
9}支持*扩展
While 循环#
1let count = 0
2while count < 3 {
3 print(count)
4 count = count + 1
5}Loop 循环#
1let count = 0
2let result = loop { #语句也可以作为表达式使用
3 print(count)
4 count = count + 1
5 if count > 3 {
6 break count
7 }
8}
9print result语句表达式#
控制语句也可以作为表达式使用:
1let a = if b>0 {5} else {-5}条件表达式
1a = c>0 ? t : f
支持嵌套。