在Emacs Lisp中,如何检查variables是否被定义?

在Emacs Lisp中,如何检查variables是否被定义?

你可能想要boundp:如果variables(一个符号)不是void就返回t; 更准确地说,如果它的当前绑定不是无效的。 否则返回零。

(boundp 'abracadabra) ; Starts out void. => nil (let ((abracadabra 5)) ; Locally bind it. (boundp 'abracadabra)) => t (boundp 'abracadabra) ; Still globally void. => nil (setq abracadabra 5) ; Make it globally nonvoid. => 5 (boundp 'abracadabra) => t 

除了dfa的答案,你也可能想看看它是否绑定为一个函数使用fboundp:

 (defun baz () ) => baz (boundp 'baz) => nil (fboundp 'baz) => t 

如果你想从emacs中检查一个variables值(我不知道这是否适用,因为你写了“Emacs Lisp”?):

M-:在迷你缓冲区中启动Eval 。 写入variables的名称并按回车。 迷你缓冲区显示variables的值。

如果variables未定义,则会出现debugging器错误。