开放数组
注意: 开放数组只用于形参。
固定大小的数组经常被证明是不够灵活的;过程应当能够处理不同大小的数组。 开放数组 类型允许这样。开放数组总是以0开始的 int 索引。 len, low 和 high 操作符也可以用于开放数组。任何兼容基类型的数组可以传递给开放数组形参, 与索引类型无关。
- var
- fruits: seq[string] # 字符串序列用 '@[]' 初始化
- capitals: array[3, string] # 固定大小的字符串数组
- capitals = ["New York", "London", "Berlin"] # 数组 'capitals' 允许只有三个元素的赋值
- fruits.add("Banana") # 序列 'fruits' 在运行时动态扩展
- fruits.add("Mango")
- proc openArraySize(oa: openArray[string]): int =
- oa.len
- assert openArraySize(fruits) == 2 # 过程接受一个序列作为形参
- assert openArraySize(capitals) == 3 # 也可以是一个数组
开放数组类型无法嵌套:多维开放数组不支持,因为这个需求很少见且不能有效的实现。