请在2024 Clojure现状调查!中分享您的想法。

欢迎!请访问关于页面以获取更多关于如何使用本站的信息。

0
ClojureScript

普通函数(即JavaScript函数)没有这种限制。对于IFn实现者,我们不应允许超过21个参数的arity,并且应将第21个arity转换为一个可变参数签名。

3 答案

0

评论者:justiniac

{quote}我们应该将21个arity转换为一个可变参数签名{quote}
除非理解有误,否则不能这样做。在协议中不允许使用可变参数签名。

{quote}我们不应允许超过21个参数的arity{quote}
你想要发出分析器警告吗?

0

评论者:darwin

我相信我在使用core.async的代码中遇到了这个问题(link: 1)。

如果现在无法实现,我恳请您至少发出编译器警告。这个问题表现为无限递归循环,最终导致神秘的栈溢出。

(link: 1) https://github.com/binaryage/dirac/commit/cce56470975a287c0164e6f79cd525d6ed27a543

0
参考: https://clojure.atlassian.net/browse/CLJS-1447 (由 dnolen 报告)
...