CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 文档中心

关于列表(AutoLISP)

2023-1-8 13:35| 发布者: admin| 查看: 568| 评论: 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

该函数接受任意数量的列表,并将它们作为一个列表一起运行。因此,此函数的所有参数都必须是列表。下面的代码将另一个“一”添加到存储在 中的列表中。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 还提供了许多附加函数,这些函数是 和 函数的变体。例如,该函数返回列表的第二个元素,该函数返回列表的第三项。该函数类似于在列表中使用该函数,然后在结果列表中使用该函数。carcdrcadrcaddrcadrcdrcar

(cadr lst1)
"One"

(car (cdr lst1))
"One"

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-12-16 00:31

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部