Emacs Lisp'te bir değişkenin tanımlı olup olmadığını nasıl kontrol ederim?
Yanıtlar:
boundp isteyebilirsiniz: değişken (bir sembol) void değilse t döndürür; daha doğrusu, mevcut bağının geçersiz olmaması durumunda. Aksi takdirde sıfır döndürür.
(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
symbol-value
gerçek değeri yazdırmak için işlevi de kullanıyorum . sembol-değer-doc . Egs: eval-expression
Komutu kullanarak ve sonra şunu yazarak: (symbol-value 'abracadabra)
Emacs içinden bir değişken değeri kontrol etmek istiyorsanız ("Emacs Lisp'te" yazdığınız için bunun geçerli olup olmadığını bilmiyorum?):
M-:
Eval
mini arabellekte başlar . Değişkenin adını yazın ve return tuşuna basın. Mini arabellek, değişkenin değerini gösterir.
Değişken tanımlanmamışsa, bir hata ayıklayıcı hatası alırsınız.
M-: (boundp 'the-variable-name) RET
bir hata tetiklenmesi için gerek kalmadan kontrol edecektir.
Nil değerine sahip değişkenlerin tanımlanmış olarak kabul edildiğini unutmayın.
(progn (setq filename3 nil) (boundp 'filename3)) ;; returns t
(progn (setq filename3 nil) (boundp 'filename5)) ;; returns nil