AutoCAD 2000 中的内部实现已更改。defun 对于从早期 AutoCAD 版本升级的绝大多数 AutoLISP 用户来说,此更改是透明的。此更改仅影响将定义操作为列表结构的 AutoLISP 代码,例如将一个函数追加到另一个函数,如以下代码所示:defun (append s::startup (cdr mystartup)) 对于此类情况,您可以使用来定义函数。尝试将函数用作列表会导致错误。以下示例说明了该错误:defun-qdefun (defun foo (x) 4) foo (append foo '(3 4)) ; error: Invalid attempt to access a compiled function definition. You may want to define it using defun-q: #<SUBR @024bda3c FOO> 该错误消息提醒您可以使用 而不是 .该函数严格用于向后兼容早期版本,不应用于其他目的。defun-qdefundefun-q 父主题: |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2024-12-15 14:49
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.