我想有条件地执行一个函数,默认情况下执行其他函数,而不管第一个条件是true还是false。
例如:`
(defn- publish
[txn publisher domain-slug template first-published-at]
(if (= 2 2)
(do (somefunc txn publisher)))
(firstfunc txn publisher domain-slug first-published-at)
(secondfunc txn publisher)
)
`
如果为true,则执行所有三个函数,如果为false,则执行最后两个函数。
when
用于条件副作用。例如
(defn- publish
[txn publisher domain-slug template first-published-at]
(when (= 2 2)
(somefunc txn publisher))
(firstfunc txn publisher domain-slug first-published-at)
(secondfunc txn publisher))
您可以尝试
(cond
(= 2 2) (some-fn arg1 arg2)
:else (do
(firstfunc txn publisher domain-slug first-published-at)
(secondfunc txn publisher)))
请参阅此处https://clojuredocs.org/clojure.core/cond用于语法