Result变量

一个返回值的过程有一个隐式 result 变量声明代表返回值。一个没有表达式的 return 语句是 return result 的简写。 result 总在过程的结尾自动返回如果退出时没有 return 语句.

  1. proc sumTillNegative(x: varargs[int]): int =
  2. for i in x:
  3. if i < 0:
  4. return
  5. result = result + i
  6.  
  7. echo sumTillNegative() # echos 0
  8. echo sumTillNegative(3, 4, 5) # echos 12
  9. echo sumTillNegative(3, 4 , -1 , 6) # echos 7

result 变量已经隐式地声明在函数的开头,那么比如再次用'var result'声明, 将用一个相同名字的普通变量遮蔽它。result变量也已经用返回类型的默认值初始化过。 注意引用数据类型将是 nil 在过程的开头,因此可能需要手动初始化。