序列

序列类似数组但是动态长度,可以在运行时改变(像字符串)。因为序列是大小可变的它们总是分配在堆上,被垃圾回收。

序列总是以从零开始的 int 类型索引。 len , lowhigh 操作符也可用于序列。 x[i] 标记可以用于访问 x 的第i个元素。

序列可以用数组构造器 [] 数组到序列操作符 @ 构成。另一个为序列分配空间的方法是调用内置 newSeq 过程。

序列可以传递给一个开放数组形参。

Example:

  1. var
  2. x: seq[int] # 整数序列引用
  3. x = @[1, 2, 3, 4, 5, 6] # @ 把数组转成分配在堆上的序列

序列变量用 @[] 初始化。

for 语句可以用一到两个变量当和序列一起使用。当你使用一个变量的形式,变量持有序列提供的值。 for 语句是在 system 模块中的 items() 迭代器结果上迭代。 但如果你使用两个变量形式,第一个变量将持有索引位置,第二个变量持有值。这里 for 语句是在 system 模块中的 pairs() 迭代器结果上迭代。例如:

  1. for value in @[3, 4, 5]:
  2. echo value
  3. # --> 3
  4. # --> 4
  5. # --> 5
  6.  
  7. for i, value in @[3, 4, 5]:
  8. echo "index: ", $i, ", value:", $value
  9. # --> index: 0, value:3
  10. # --> index: 1, value:4
  11. # --> index: 2, value:5