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 내에서 변수 값을 확인하려면 ( “in Emacs Lisp”라고 썼기 때문에 이것이 적용되는지 모르겠습니다.) :
M-:
Eval
미니 버퍼에서 시작합니다 . 변수 이름을 입력하고 Enter 키를 누릅니다. 미니 버퍼는 변수의 값을 보여줍니다.
변수가 정의되어 있지 않으면 디버거 오류가 발생합니다.
답변
값이 nil 인 변수는 정의 된 것으로 간주됩니다.
(progn (setq filename3 nil) (boundp 'filename3)) ;; returns t
(progn (setq filename3 nil) (boundp 'filename5)) ;; returns nil