Common Lisp 的数组至少可以达到七个维度,每个维度至少可以容纳 1023 个元素。
:initial-element
实参是选择性的。如果有提供这个实参,整个数组会用这个值作为初始值。若试着取出未初始化的数组内的元素,其结果为未定义(undefined)。
用 aref
取出数组内的元素。与 Common Lisp 的存取函数一样, aref
是零索引的(zero-indexed):
> (aref arr 0 0)
要表示字面常量的数组(literal array),使用 #na
语法,其中 n
是数组的维度。举例来说,我们可以这样表示 arr
这个数组:
#2a((b nil nil) (nil nil nil))
如果全局变量 *print-array*
为真,则数组会用以下形式来显示:
如果我们只想要一维的数组,你可以给 make-array
第一个实参传一个整数,而不是一个列表:
字面常量的数组可以表示成 #na
,字面常量的向量也可以用这种语法表达。
可以用 aref
来存取向量,但有一个更快的函数叫做 svref
,专门用来存取向量。
NIL
在 svref
内的 “sv” 代表“简单向量”(“simple vector”),所有的向量缺省是简单向量。