关于变量的几个概念:
1.符号
符号(SYMBOL)可以理解为标识,用来作为变量、函数的名字。它的命名规则是不能只含数字,可以由下列字符以外的任何可打印的字符所组成:
“(”、“)”、“·”、“'”、“"”、“;”
在AutoLISP中,符号的大小写等价,符号的长度没有限制,且所有的字符都是有意义的。
如果一个符号的长度不超过6,就用节点本身来存储;如果符号的长度超过6,这样的符号就不能用节点来存储,而是在节点中存放一个指向实际存储符号名的指针。这将会多占用存储空间,且减慢了执行速度。因此,符号的长度最好不要超过6。
2.变量的数据类型
AutoLISP变量属于符号,是指存储静态数据的符号。
数据类型是变量的重要的特征,因为它关系到存放变量值的存储空间的大小。多数的计算机语言都在为变量赋值前对变量做显式或隐式的说明。AutoLISP无须对变量做事先的类型说明,变量被赋予值的类型即为变量的类型。
在程序运行过程中,同一变量在不同的时刻可以被赋予不同类型的值,因此在程序运行过程中,变量的数据类型是可以被改变的。可以使用type函数了解变量的类型。
3.为变量赋值
用setq函数为变量赋值,其格式如下:
(setq 变量1 值1[变量2 值2 . . .])
4.预定义的符号
(1) nil
如果变量没有被赋值,它的值为nil。引用未被赋值的变量是错误的。例如,变量x尚未被赋值,(+ 1 x)就会出现error: bad argument type(坏的参数类型错)。
将nil赋给某一有定义的变量,其结果是:取消该变量的定义,并释放其所占存储空间。
nil作为逻辑变量的值,表示不成立,相当于其他程序设计语言的false。
(2)T
T为常量,它作为逻辑变量的值,表示成立,相当于其他程序设计语言的true。
(3)PAUSE
PAUSE与command函数配合使用,用于暂停,等候用户输入。
(4)PI
PI被定义为常量 π。
注意:每个变量都占用一些内存空间。为了节省存储空间,可重复使用变量名,或者将不再使用的变量设为nil,以便释放该变量所占的内存空间。
必须注意,一般的编程语言不允许将内部函数名或流程控制的关键字作为变量名,而AutoLISP没有这样的限制。因此,程序中定义的符号名称不要与系统定义的函数名和预定义的变量名相同,否则,后面的定义将取代已有的定义,从而引起混乱。例如,sin是正弦函数,可是在执行表达式(setq sin 1)之后,sin不再是正弦函数,而是一个值为1的整型变量。
5.显示变量的值
要想在AutoCAD命令提示区显示变量的值,必须在变量名前添加惊叹号!。
在交互方式下将变量的值传递给AutoCAD,在变量前加一个感叹号“!”,即可将表达式的值传递给AutoCAD。
注:以上均摘录自AutoLisp学习资料