vik*_*hal 31 java language-features clojure
switch在Clojure中是否有Java的构造的等价物?如果是,那是什么?如果不是,我们是否必须使用if else梯子来实现它?
mik*_*era 39
案件是一个很好的选择,正如Jan所指出的那样
cond在许多相关情况下也非常有用,特别是如果你想在评估一系列不同条件表达式的基础上进行切换,例如
(defn account-message [balance]
(cond
(< balance 0) "Overdrawn!"
(< balance 100) "Low balance"
(> balance 1000000) "Rich as creosote"
:else "Good balance"))
Run Code Online (Sandbox Code Playgroud)
请注意,cond的结果由第一个匹配表达式确定,因此负余额将显示"Overdrawn!" 即使它也符合低平衡案例.
[我编辑了代码 - 删除了末尾的额外括号以使其工作]
Jan*_*Jan 34
试试case宏:
(case (+ 2 3)
6 "error"
5 "ok")
Run Code Online (Sandbox Code Playgroud)
或者使用默认值
(case (+ 2 3)
5 "ok"
"error")
Run Code Online (Sandbox Code Playgroud)
请记住,根据文档
不评估测试常数.它们必须是编译时的文字,不需要引用.(......)
在ClojureDocs上查看更多示例.
| 归档时间: |
|
| 查看次数: |
9634 次 |
| 最近记录: |