当前位置:软件学习 > 其它软件 >>

ELisp编程六:定义变量

给变量赋值
(set arg1 arg2) 这种语法将arg2设置为arg1的值
比如:
[plain]
(set ‘flowers '(rose violet daisy buttercup)) 

这是创建了一个symbol flowers,将(rose violet daisy buttercup) list 赋值给了flowers的value域。
稍后,可以直接使用flowers,就像用变量一样,实际上是使用的它的value域存放的list,比如:
[plain]
(print flowers) 

也将输出(rose violet daisy buttercup)

注意,单引号在这里是告诉解析器不要试图对flowers和(rose violet daisy buttercup)求值。
如果set语句去除flowers前面的单引号,那么flowers就会被求值。因为这里flowers还没有被定义,求值就会错误,会看到如下错误:
error: (void-variable flowers)
应该还是很好理解的。

setq语句是set的简化版本,当set的第一个参数如果要加单引号的话,就可用setq来简化。比如下面的用法:
[plain]
(setq flowers '(rose violet daisy buttercup)) 
setq还支持一次多定义几个symbol,比如:
[plain]
(setq trees '(pine fir oak maple) 
           herbivores '(gazelle antelope zebra)) 


摘自 sheismylife的专栏
补充:软件开发 , 其他 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,