在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器错误。