语句和缩进

既然我们覆盖了基本的控制流语句, 让我们回到Nim缩进规则。

在Nim中 简单语句复杂语句 有区别。 简单语句 不能包含其它语句:属于简单语句的赋值, 过程调用或 return 语句。 复杂语句ifwhenforwhile 可以包含其它语句。 为了避免歧义,复杂语句必须缩进, 但单个简单语句不必:

  1. # 单个赋值语句不需要缩进:
  2. if x: x = false
  3.  
  4. # 嵌套if语句需要缩进:
  5. if x:
  6. if y:
  7. y = false
  8. else:
  9. y = true
  10.  
  11. # 需要缩进, 因为条件后有两个语句:
  12. if x:
  13. x = false
  14. y = false

表达式 是语句通常有一个值的部分。 例如,一个if语句中的条件是表达式。表达式为了更好的可读性可以在某些地方缩进:

  1. if thisIsaLongCondition() and
  2. thisIsAnotherLongCondition(1,
  3. 2, 3, 4):
  4. x = true

根据经验,表达式中的缩进允许在操作符、开放的小括号和逗号后。

用小括号和分号 (;) 可以在只允许表达式的地方使用语句:

  1. # 编译期计算fac(4) :
  2. const fac4 = (var x = 1; for i in 1..4: x *= i; x)