繁体   English   中英

Elisp:我怎么能表达else-if

[英]Elisp: how can I express else-if

在elisp中,if语句逻辑只允许我使用if case和else case。

(if (< 3 5) 
  ; if case
    (foo)
  ; else case
    (bar))

但如果我想做别的话怎么办? 我是否需要在else案例中添加新的if语句? 它看起来有点乱。

嵌套if

由于(if test-expression then-expression else-expression)的一部分else if要将一个新的if作为else-expression嵌套:

(if test-expression1
    then-expression1
    (if test-expression2
        then-expression2
        else-expression2))

使用cond

在其他语言中, else if通常在同一级别上。 在lisps,我们有cond为此。 这与cond完全相同:

(cond (test-expression1 then-expression1)
      (test-expression2 then-expression2)
      (t else-expression2))

请注意,表达式可以就是这样。 任何表达式通常都是这样的(some-test-p some-variable) ,其他表达式通常也是如此。 它们很少只是被评估的单个符号,但它可以用于非常简单的条件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM