我想让
foo
接受两个参数,如果第一个是:ok
它应该返回第二个参数,否则第一个参数。
我想用这样的模式匹配来做:
(defn foo [:ok val] (val))
(defn foo [key val] (key))
但是不支持。我可以用类似的方式来做吗(使用模式匹配或某种方式)?
这是一种方法。
(ns tst.demo.core
(:use tupelo.core tupelo.test))
(defn foo
[a b]
(if (= :ok a)
b
a))
(verify
(is= (foo :ok :something) :something)
(is= (foo :nope :something) :nope))
如果超过 2 个案例,您可能需要使用
(cond ...)
表格。
使用我最喜欢的模板项目.