For语句

for 语句是一个循环遍历迭代器提供的任何元素的构造。示例使用内置的 countup 迭代器:

  1. echo "Counting to ten: "
  2. for i in countup(1, 10):
  3. echo i
  4. # --> Outputs 1 2 3 4 5 6 7 8 9 10 on different lines

变量 i 通过 for 循环隐式的声明并具有 int 类型, 因为这里 countup 返回的。 i 遍历 1, 2, .., 10,每个值被 echo 。 这段代码作用是一样的:

  1. echo "Counting to 10: "
  2. var i = 1
  3. while i <= 10:
  4. echo i
  5. inc(i) # increment i by 1
  6. # --> Outputs 1 2 3 4 5 6 7 8 9 10 on different lines

倒数可以轻松实现 (但不常需要):

  1. echo "Counting down from 10 to 1: "
  2. for i in countdown(10, 1):
  3. echo i
  4. # --> Outputs 10 9 8 7 6 5 4 3 2 1 on different lines

计数在程序中经常出现,Nim有一个 .. 迭代器作用是一样的

  1. for i in 1..10:
  2. ...

零索引计数有两个简写 ..<..^ ,为了简化计数到较高索引的前一位。

  1. for i in 0..<10:
  2. ... # 0..9

or

  1. var s = "some string"
  2. for i in 0..<s.len:
  3. ...

其它有用的迭代器(如数组和序列)是

  • items 和 mitems ,提供不可改变和可改变元素,
  • pairs 和 mpairs 提供元素和索引数字。
  1. for index, item in ["a","b"].pairs:
  2. echo item, " at index ", index
  3. # => a at index 0
  4. # => b at index 1