2024年Clojure状态调查!中分享您的想法。

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

0
Clojure

目前count()返回int类型 - 应将其提升为long类型。

在long类型溢出时,count()应抛出ArithmeticException异常。也请参见CLJ-1229。

4 个答案

0

评论由:slipset提供

查看这个问题,存在一些问题,如
在clojure.lang.RT#toArray的第1658行
中,根据集合的计数创建一个新的Object数组。
看起来new Object()需要一个int类型的参数,因此必须将long值强制转换为int才能使此操作可行。

0

评论由:alexmiller提供

如果您创建的Object()大于2147483647,您可能还有其他问题。 ;)

但是的,这个工单确实需要更彻底的分析,以确定影响的内容。在这种情况下,我认为如果计数<=Integer/MAX_VALUE,则应继续进行,否则应抛出异常。

0

评论由:slipset提供

嗯,这也引发了有关java.util.Collection size的问题
在clojure.lang.APersistentSet#size的第164行
其中大小由

http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html#size()指定

0
by
参考: https://clojure.atlassian.net/browse/CLJ-1729 (由 alexmiller 报告)
...