评论由:alexmiller 添加
我认为除了原始long或double之外,任何类型都不应支持在loop/recur中使用。假设这是正确的,这将是预期的行为。
在最近一轮主要数值/原始重构中,我们做出了只支持原始long和double类型的决定。这一决定的后果之一是原始int循环难以优化 - 我遇到这种情况的主要时间是在使用Java互操时在密集循环中进行(例如)字符串、集合或数组操作(所有这些都是用int索引的)。
关于未检查的inc与未检查的inc-int,有两个变体的主要原因不是性能,而是行为。特别是,散列操作通常期望获得32位int溢出语义,而不是64位int溢出语义。
总之,我认为在给出的例子中,我会用long,而不是int或unchecked-inc-int,如果你在寻求最佳性能的话。