Common Lisp中vector函数创建的向量如何用svref访问?
如何访问
vector函数创建的向量元素? 嘿,这事儿其实挺直观的——vector函数创建的向量和make-array生成的向量是完全相同的类型,所以你完全可以用已经熟悉的svref来访问它的元素,用法没有任何区别。
具体操作示例
- 先创建你的向量:
; 创建包含1、2、3、4、5的向量 (setf my-vec (vector 1 2 3 4 5)) - 用
svref访问元素,语法是(svref 向量对象 索引),记住Common Lisp里向量的索引是从0开始计数的:- 取第一个元素(值为1):
(svref my-vec 0) ; 执行后返回1 - 取第三个元素(值为3):
(svref my-vec 2) ; 执行后返回3 - 取最后一个元素(值为5):
(svref my-vec 4) ; 执行后返回5
- 取第一个元素(值为1):
额外小技巧
你甚至可以用setf配合svref修改向量里的元素,比如:
; 把第一个元素改成100 (setf (svref my-vec 0) 100) ; 再访问的话就会得到100 (svref my-vec 0) ; 返回100
内容的提问来源于stack exchange,提问作者Sanket Alurkar
相关产品推荐
相关产品推荐

