AutoLisp的 car、cadr、caddr、cdr用法
特别注意的是点表的表现形式有所不同。这点困惑了我一段时间,我最开始以为点表的点也是一个数据,后来发现不是。
cdr
|
||
|
返回去掉了第一个元素的表
(cdr list)
参数
list
表。
返回值
list 去掉第一个元素后所得的表(例外情况请见下面的“注意”栏)。如果表为空,函数返回 nil。
注意 当 list 参数是点对表时,cdr 返回点对表的第二个元素,而不是以表的形式返回它。
示例
命令: (cdr '(a b c))
(B C)
命令: (cdr '((a b) c))
(C)
命令: (cdr '())
nil
命令: (cdr '(a . b))
B
命令: (cdr '(1 . "Text"))
"Text"
car
|
||
|
返回表的第一个元素
(car list)
参数
list
表。
返回值
list 中的第一个元素。如果表为空则返回 nil。
示例
命令: (car '(a b c))
A
命令: (car '((a b) c))
(A B)
命令: (car '())
nil
cadr
|
||
|
返回表的第二个元素
(cadr list)
在 AutoLISP 中,cadr 函数经常被用来获取二维或三维点的 Y 坐标(由两个或三个实数组成的表的第二个元素)。
参数
list
表。
返回值
list 中的第二个元素。如果表为空或表中仅有一个元素则返回 nil。
示例
命令: (setq pt2 '(5.25 1.0))
(5.25 1.0)
命令: (cadr pt2)
1.0
命令: (cadr '(4.0))
nil
命令: (cadr '(5.25 1.0 3.0))
1.0
caddr
|
||
|
返回表的第三个元素
(caddr list)
在 AutoLISP 中,caddr 函数经常被用来获取三维点的 Z 坐标(由三个实数组成的表的第三个元素)。
参数
list
表。
返回值
list 中的第三个元素。如果表为空或元素个数少于三个则返回 nil。
示例
命令: (setq pt3 '(5.25 1.0 3.0))
(5.25 1.0 3.0)
命令: (caddr pt3)
3.0
命令: (caddr '(5.25 1.0))
nil
本文来自博客园,作者:仇朝权,转载请注明原文链接:https://www.cnblogs.com/qiucq/p/16926970.html