跳过正文
  1. Lumesh 文档/
  2. 语法/

语法:语句与控制结构

545 字·2 分钟
目录

基础语法:语句与控制结构

四、语句
#

  1. 语句块 用 {} 表示。一般用于流程控制语句。

  2. 语句组(子命令捕获) 用括号表示子命令,子命令不新建进程,不隔离变量作用域。 echo (len [5,6])

  3. 语句 用 ;enter 分割

  • 换行符;或回车。

  • 续行符:使用 \ + 换行符跨行书写。

    1let long_expr = 3 \
    2             + 5  # 等价于 "3 + 5"
    3
    4let long_str = "Hello
    5                World"  # 等价于 "Hello\n World"

    注意:引号内的内容无须续行符

  1. 注释 注释以#开头

五、控制结构
#

条件语句
#

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

支持嵌套。

相关文章