首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Emacs Lisp中,如何检查是否定义了变量?

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

Stack Overflow用户
提问于 2009-04-16 18:58:21
回答 4查看 24.7K关注 0票数 103

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-04-16 19:06:05

如果变量(符号)不是void,则返回t;更准确地说,如果它的当前绑定不是void,则返回t。否则,它将返回nil。

代码语言:javascript
复制
  (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
票数 148
EN

Stack Overflow用户

发布于 2009-04-17 15:43:11

除了dfa's answer之外,您可能还希望查看是否使用fboundp将其绑定为函数

代码语言:javascript
复制
(defun baz ()
  )
=> baz
(boundp 'baz)
=> nil
(fboundp 'baz)
=> t
票数 49
EN

Stack Overflow用户

发布于 2010-06-29 20:01:09

如果你想检查emacs中的变量值(我不知道这是否适用,因为你写了"in Emacs Lisp"?):

M-:在迷你缓冲区中启动Eval。写入变量的名称,然后按return。迷你缓冲区显示变量的值。

如果未定义该变量,则会出现调试器错误。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/757564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档