所以我试着在clojure中编写下面的内容(假设下面的所有方法都返回boolean)
def some_method(a, b)
if (call_this_method() )
then_call_this_method()
else
new_method()
end
我得到的是:
(defn some-method [a b]
(if (call_this_method)
:then (then-call-this-method)
:else (new-method)))
我对clojure很新,所以我不确定这是否是解决这个问题的正确方法。有不同的方法吗?
答案 0 :(得分:5)
if
基本上需要3个参数,[条件是什么 - 运行 - 如果是真的可选 - 运行 - 如果 - 假]
(defn some-method
"My function does ..."
[ a b ]
(if (call-this-method)
(then-call-this-method)
(new-method)))
答案 1 :(得分:5)
你也可以在clojure中使用if
(if test then-code else-code)
或cond
更像是开关
(cond
test-A run-if-A
test-B run-if-B
...
:else else-code)
如果你想做类似
的事情 if(foo) bar;
然后你会写
(when foo bar)