当前位置:  开发笔记 > IOS > 正文

如何在elisp'if'语句中编写多个语句?

如何解决《如何在elisp'if'语句中编写多个语句?》经验,为你挑选了2个好方法。

在elisp中,有一个'if'的情况,我希望执行许多不同的事情:

(if condition
    (do-something)
    (do-something-else)
    ...)

但是,(do-something-else)仅在else-case中执行.如何指定要执行的指令块?例如:

(if condition
    (begin
        (do-something)
        (do-something-else)
        ...))

mipadi.. 80

用途progn:

(if condition
    (progn
        (do-something)
        (do-something-else)))


Trey Jackson.. 44

如果没有else必要,使用它可能更具可读性:

(when condition
    (do-something)
    (do-something-else))

而且,这是相反的

(unless (not condition)
    (do-something)
    (do-something-else))

查看Emacs Lisp手册了解条件.



1> mipadi..:

用途progn:

(if condition
    (progn
        (do-something)
        (do-something-else)))



2> Trey Jackson..:

如果没有else必要,使用它可能更具可读性:

(when condition
    (do-something)
    (do-something-else))

而且,这是相反的

(unless (not condition)
    (do-something)
    (do-something-else))

查看Emacs Lisp手册了解条件.


FWIW,我通常遵循*Common Lisp中使用的惯例使用`when`和`unless`时返回值不重要(即,它们仅用于副作用).当返回值很重要时,我通常使用`和`和`或`.当有多个分支时(无论返回值是否重要),我通常使用`if`和`cond`.
推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有