Emacs Lisp Symbol类型组成部分

Emacs Lisp Symbol类型组成部分

Emacs Lisp的Symbol经常被用作变量名。

在ELisp里面,其实Symbol有4个组成部分。

1. 打印名(Print name):也就是Symbol的名字。可以通过symbol-name函数来获的。(symbol-name 'abc)

的返回就是abc

2. 值(Value):也就是平时我们用的变量值。直接使用symbol的名字就可以访问。(princ abc)

就可以打印变量的值。

3. 函数(Function):这个比较有意思,一个Symbol既可以表示一个变量,也可以表示一个函数,这两者之间没有任何冲突。可以通过symbol-function来获得函数值。(abc)

可以直接调用这个函数。

4. 属性列表(Property list),可以存一个Property List到Symbol中,并且和值,和函数都不冲突。通过symbol-plist获得这个preperty list。get/put函数设置property值。(get 'abc 'property1)

下面时测试代码:

(setq abc 5) <- 设置Symbol值

(defun abc ()

(princ "helloworld!")) <- 定义Symbol函数

(put 'abc 'property1 56) <- 设置Symbol属性

(put 'abc 'property2 "hello")

(princ "symbol name:")

(princ (symbol-name 'abc))

(princ "\nsymbol value:")

(princ abc)

(princ "\nsymbol function:")

(princ (symbol-function 'abc))

(princ "\nrun abc function\n")

(abc)

(princ "\nsymbol property list:")

(princ (symbol-plist 'abc))

(princ "\nproperty1:")

(princ (get 'abc 'property1))

(princ "\nproperty2:")

(princ (get 'abc 'property2))

(princ "\n")

运行结果如下:

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();