2024年的Clojure调查问卷中分享您的想法!

欢迎!请参见关于页面,了解更多关于如何使用本站的信息。

0 投票
ClojureScript

`
ClojureScript 1.10.339
cljs.user=> (defn foo ([x] [:single x]) ([& xs] [:variadic xs]))

'cljs.user/foo

cljs.user=> (foo 1)
[:single 1]
cljs.user=> (foo 1 2)
[:variadic 1]
`

请注意,可变参数调用给出了错误的答案。

似乎正确的做法不是“让它工作”,而是拒绝不正确的代码。请看Clojure

user=> (defn foo ([x] [:single x]) ([& xs] [:variadic xs])) 编译器异常 java.lang.RuntimeException: 不能有固定arity的函数比可变arity的函数参数多,编译:(NO_SOURCE_PATH:1:1)

1 答案

0 投票
参考资料:https://clojure.atlassian.net/browse/CLJS-2863(由mfikes报告)
...