在常见的lisp中访问向量

San*_*kar 1 common-lisp ansi-common-lisp

(setf vec (make-array 4 :initial-element nil))
(svref vec 0)
Run Code Online (Sandbox Code Playgroud)

在上面的代码片段中,我们创建了一个长度为4的向量,并通过(svref vec)访问其元素.

(vector 1 2 3 4 5)
Run Code Online (Sandbox Code Playgroud)

在上面的代码片段中,我们使用向量函数创建长度为5的向量.我们如何访问此向量的元素?svref如何用于此向量?

Sva*_*nte 5

通用向量引用函数aref与所有其他数组相同.

Svref仅用于简单矢量,即矢量具有element-type t,不可调节,没有填充指针,不会移位.

顺便说一下,vector确实产生了一个简单的向量,所以也svref应该适用于你的第二个例子.

其他问题:

  • 我想你的意思是:initial-element.
  • 无需引用数字文字,他们会评估自己.