Emacs LISPでは、変数が定義されているかどうかを確認するにはどうすればよいですか?
boundp:が必要な場合があります。変数(シンボル)がvoidでない場合、tを返します。より正確には、現在のバインディングが無効でない場合。それ以外の場合は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
Emacs内から変数値を確認したい場合(「Emacs LISPで」と書いたので、これが当てはまるかどうかわかりませんか?):
M-:
は、ミニバッファでEval
を開始します。変数の名前を書き、リターンを押します。ミニバッファには変数の値が表示されます。
変数が定義されていない場合、デバッガーエラーが発生します。
値がnilの変数は定義済みと見なされることに注意してください。
(progn (setq filename3 nil) (boundp 'filename3)) ;; returns t
(progn (setq filename3 nil) (boundp 'filename5)) ;; returns nil