在Emacs Lisp中,如何检查是否定义了变量?

最佳答案

您可能需要boundp:如果变量(符号)不为空,则返回t;否则为false。更准确地说,如果其当前绑定(bind)不无效。否则返回nil。

  (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

10-08 16:21