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(链接:1)的代码中遇到了这个问题。

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

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

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