CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoLISP 开发指南

关于列表(AutoLISP)

2023-1-6 14:03| 发布者: admin| 查看: 1361| 评论: 0|来自: AutoCAD

摘要: 列表是一组由空格分隔并括在括号中的相关值。

列表是一组由空格分隔并括在括号中的相关值。

列表提供了一种存储大量相关值的有效方法。毕竟,LISP之所以如此命名,是因为它是LISt处理语言。一旦您了解了列表的强大功能,您会发现您可以创建更强大、更灵活的应用程序。列表用于表示 2D 和 3D 坐标值以及实体数据。

列表的示例包括、和。(1.0 1.0 0.0)("this" "that" "the other")(1 . "ONE")

AutoLISP 提供了许多用于处理列表的函数。以下是一些最常用的函数:

  • list- 创建具有任意数量值的新列表。
  • append- 将值追加到现有列表,并返回新列表。
  • cons- 将元素添加到列表的开头,或构造虚线列表。
  • length- 返回一个整数,指示列表中的元素数。
  • assoc- 在关联列表中搜索元素并返回该关联列表条目。
  • car- 返回列表的第一个元素。
  • cdr- 返回包含指定列表中除第一个元素之外的所有元素的列表。
  • nth- 返回列表的第 n 个元素。
  • subst- 在列表中搜索旧项目,并返回列表的副本,其中替换一个新项目来代替旧项目的每次出现。

创建列表

该函数提供了一种对相关项进行分组的简单方法。这些项目不需要具有相似的数据类型,甚至可以是其他列表。以下代码将三个项目分组为一个列表:list

(setq lst1 (list 1.0 "One" 1))
(1.0 "One" 1)

也可以使用(或')函数创建列表。quote

(setq lst1 '(1.0 "One" 1))
(1.0 "One" 1)

添加或更改列表中的项目

该函数允许您将新项目添加到列表的末尾,该函数允许您将新项目添加到列表的开头。该函数可用于将新项替换为旧项的每次出现。这些函数不会修改原始列表;它们返回修改后的列表。如果需要修改原始列表,请将旧列表显式替换为新列表。appendconssubst

该函数接受任意数量的列表并将它们作为一个列表一起运行。因此,此函数的所有参数都必须是列表。下面的代码将另一个“One”添加到存储的列表中。appendlst1

(setq lst2 (append lst1 '("One")))
(1.0 "One" 1 "One")

该函数将单个元素与列表组合在一起。您可以使用函数将另一个字符串“One”添加到列表的开头。conslst2cons

(setq lst3 (cons "One" lst2 ))
("One" 1.0 "One" 1 "One")

您可以使用函数将列表中出现的所有项目替换为新项目。下面的代码将所有字符串“One”替换为字符串“one”。subst

(setq lst4 (subst "one" "One" lst3))
("one" 1.0 "one" 1 "one")

从列表中检索项目

您可以使用函数从列表中检索特定项目。此函数接受两个参数。第一个参数是一个整数,它指定要返回的项。列表以 0 索引开头。0 指定列表中的第一项,1 指定第二项,依此类推。第二个参数是列表本身。下面的代码返回第二项。nthlst1

(nth 1 lst1)
"One"

该函数返回列表的第一项。例如:car

(car lst1)
1.0

该函数将列表中的所有项目作为新列表返回,但第一项除外。例如:cdr

(cdr lst1)
("One" 1)

AutoLISP 还提供了许多附加函数,这些函数是 andfunctions 的变体。例如,该函数返回列表的第二个元素,该函数返回列表的第三项。该函数就像在列表上使用函数,然后在结果列表中使用函数。carcdrcadrcaddrcadrcdrcar

(cadr lst1)
"One"

(car (cdr lst1))
"One"

路过

雷人

握手

鲜花

鸡蛋

最新评论

UG快捷键鼠标垫

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-6 21:00

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部