除了
之类的东西(fn [& {:keys [more the-rest]}] ,,,)
有没有办法同时使用可变数量的参数和关键字参数, e.g。
(my-function arg1 arg2 some-other-args :opt1 opt1 :opt2 opt2)
答案 0 :(得分:2)
你可以定义你的函数以你喜欢的方式获取参数,但是你将遇到的问题是如何区分模糊情况之间的区别:
(my-function arg1 arg2 arg3 arg4)
(my-function arg1 arg2 key1 val1)
为了区分,您需要编写代码以在运行时检查参数(例如,检查第三个参数是否为关键字)。这会很快变得丑陋。
因此,我不建议沿着这条路走下去。备选方案: