语句和缩进
既然我们覆盖了基本的控制流语句, 让我们回到Nim缩进规则。
在Nim中 简单语句 和 复杂语句 有区别。 简单语句 不能包含其它语句:属于简单语句的赋值, 过程调用或 return 语句。 复杂语句 像 if 、 when 、 for 、 while 可以包含其它语句。 为了避免歧义,复杂语句必须缩进, 但单个简单语句不必:
- # 单个赋值语句不需要缩进:
- if x: x = false
- # 嵌套if语句需要缩进:
- if x:
- if y:
- y = false
- else:
- y = true
- # 需要缩进, 因为条件后有两个语句:
- if x:
- x = false
- y = false
表达式 是语句通常有一个值的部分。 例如,一个if语句中的条件是表达式。表达式为了更好的可读性可以在某些地方缩进:
- if thisIsaLongCondition() and
- thisIsAnotherLongCondition(1,
- 2, 3, 4):
- x = true
根据经验,表达式中的缩进允许在操作符、开放的小括号和逗号后。
用小括号和分号 (;) 可以在只允许表达式的地方使用语句:
- # 编译期计算fac(4) :
- const fac4 = (var x = 1; for i in 1..4: x *= i; x)