JSRUN 用代码说话

序列

编辑教程

序列

序列类似与数组,但它有动态长度可以在运行时改变(就像字符串)。由于序列是可变大小的,所以它们总是在堆上分配以及垃圾收集。

序列总是带有一个int类型索引从0位置开始。len,low,high操作同样作用于序列。x[i]符号可以用于访问x的第i个元素。

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

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

Example:

var
  x: seq[int] # a sequence of integers
x = @[1, 2, 3, 4, 5, 6] # the @ turns the array into a sequence

序列变量用nil初始化。然而,由于性能的原因很多的序列操作不能处理nil(导致引发一个异常)。因此应该用空序列@[]而不是nil作为空值。但是@[]在堆上创建了一个序列对象,所以在这里需要做一个权衡 。

for语句可以使用一个或两个变量当用于一个序列的时候。当你使用一个变量的形式,这个变量将会持有序列提供的值。for语句从系统模型的items()迭代器循环这个结果。但是如果你使用两个变量的形式,第一个变量将保存索引位置,第二个变量将保存值,第二种形式for语句是从系统模型的pairs()迭代器循环结果。

for i in @[3, 4, 5]:
  echo($i)
# --> 3
# --> 4
# --> 5

for i, value in @[3, 4, 5]:
  echo("index: ", $i, ", value:", $value)
# --> index: 0, value:3
# --> index: 1, value:4
# --> index: 2, value:5
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟