Dans Emacs Lisp, comment vérifier si une variable est définie?
91
vous pouvez vouloir boundp: renvoie t si la variable (un symbole) n'est pas vide; plus précisément, si sa liaison actuelle n'est pas nulle. Sinon, il renvoie nul.
(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
En plus de la réponse de dfa, vous voudrez peut-être également voir si elle est liée en tant que fonction en utilisant fboundp :
la source
Si vous voulez vérifier une valeur de variable depuis emacs (je ne sais pas si cela s'applique, puisque vous avez écrit "in Emacs Lisp"?):
M-:
démarreEval
dans le mini tampon. Écrivez le nom de la variable et appuyez sur retour. Le mini-tampon affiche la valeur de la variable.Si la variable n'est pas définie, vous obtenez une erreur de débogage.
la source
M-: (boundp 'the-variable-name) RET
vérifiera sans qu'il soit nécessaire de déclencher une erreur.N'oubliez pas que les variables ayant la valeur nil sont considérées comme définies.
la source