语句和缩进
现在我们学习了基本的控制流语句,让我们重新回到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
作为一个经典法则。在表达式中操作符,开括号,逗号之后的缩进是允许的。
用圆括号和分号(;),你可以用只有一个表达式的语句是允许的。
# computes fac(4) at compile time:
const fac4 = (var x = 1; for i in 1..4: x *= i; x)