ala*_*bid 4 emacs elisp operator-keyword
我正在学习如何通过学习emacs lisp来扩展我的本地GNU emacs软件.在我遇到的其中一个源代码中,我看到了"何时".我认为这是一个控制结构,但我不确定.我已经尝试使用谷歌搜索"emacs lisp中的when keyword/expression"(以及其他类似的排序).我甚至检查了gnu.org网站.我只找到包含"when"的源代码,但没有关于如何以及何时使用"when"的描述.有人能告诉我在emacs lisp中我应该如何以及在适当的情况下在控制结构中使用"when"等?提前致谢.
Gar*_*ees 13
输入C-h f when RET,您将看到文档:
when是一个Lisp宏subr.el.
(when COND BODY...)当
CONDyield为非时nil,evalBODY按顺序形成并返回最后一个的值,或者nil如果没有则返回.
如果你进行宏扩展,你可以看到它是如何实现的:
ELISP> (macroexpand '(when cond body1 body2 body3))
(if cond
(progn body1 body2 body3))
Run Code Online (Sandbox Code Playgroud)
您应该使用when而不是if在没有"else"子句的情况下.它看起来更好,它向读者提供了一个提示,即没有"else"条款.如果你有一个"else"子句但没有"then"子句你可以写unless.