aref无效 lisp_aref无效 lisp_Common Lisp专题4:数组

1)用make-array创建数组:

CL-USER> (make-array 5 :initial-element nil)

#(NIL NIL NIL NIL NIL)

CL-USER> (make-array 5 :initial-contents '(a e i o u))

#(A E I O U)

CL-USER> (setf arr (make-array 5 :initial-contents '(a e i o u)))

#(A E I O U)

CL-USER> arr

#(A E I O U)

也可以简单一点:

CL-USER> (setf a '#(nil nil nil nil nil))

#(NIL NIL NIL NIL NIL)

2)创建二维数组:

CL-USER> (setf arr (make-array '(2 3) :initial-element nil))

#2A((NIL NIL NIL) (NIL NIL NIL))

CL-USER> (make-array (list 2 2))

#2A((0 0) (0 0))

CL-USER> (make-array (list 2 2) :initial-contents '((1 2) (3 4)))

#2A((1 2) (3 4))

CL-USER> (make-array '(2 2) :initial-contents '((a b) (c d)))

#2A((A B) (C D))

CL-USER> (setf arr (make-array '(2 3) :initial-element nil))

#2A((NIL NIL NIL) (NIL NIL NIL))

CL-USER> arr

#2A((NIL NIL NIL) (NIL NIL NIL))

3)用aref访问数组元素

CL-USER> (setf arr (make-array '(2 3) :initial-element nil))

#2A((NIL NIL NIL) (NIL NIL NIL))

CL-USER> arr

#2A((NIL NIL NIL) (NIL NIL NIL))

CL-USER> (make-array 5 :initial-element nil)

#(NIL NIL NIL NIL NIL)

CL-USER> (setf arr (make-array 5 :initial-element nil))

#(NIL NIL NIL NIL NIL)

CL-USER> (aref arr 0)

NIL

CL-USER> (aref arr 3)

NIL

CL-USER> (setf arr (make-array 5 :initial-contents '(a e i o u)))

#(A E I O U)

CL-USER> arr

#(A E I O U)

CL-USER> (aref arr 0)

A

CL-USER> (aref arr 3)

O

CL-USER> (setf arr (make-array '(2 2) :initial-contents '((a b) (c d))))

#2A((A B) (C D))

CL-USER> arr

#2A((A B) (C D))

CL-USER> (aref arr 0 1)

B

CL-USER> (aref arr 1 0)

C

CL-USER> (aref arr 1 1)

D

4)访问二维数组

CL-USER> (setf arr (make-array '(2 2) :initial-contents '((a b) (c d))))

#2A((A B) (C D))

CL-USER> arr

#2A((A B) (C D))

CL-USER> (aref arr 0 0)

A

CL-USER> (aref arr 1 0)

C

5)一维数组也是向量

CL-USER> (vector "a" 'b 5)

#("a" B 5)

CL-USER> (setf arr (vector "a" 'b 5))

#("a" B 5)

CL-USER> arr

#("a" B 5)

(未完待续。。。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值