由 alexmiller 发表评论:
我认为在loop/recur中仅支持原始的long或double是有意的。假设这是正确的,这将是一种预期的行为。
上一轮主要的数值/原始重构决定仅支持原始的long和double。其结果是,原始的int循环难以优化——我遇到这种情况的最主要是在处理Java互操作时工作,在紧密循环中处理String、集合或数组操作时(所有这些都是使用int索引的)。
关于unchecked-inc 与 unchecked-inc-int,存在两种变体的主要原因不是性能而是行为。特别是,散列操作通常会期望得到32位int溢出的语义,而不是64位int溢出的语义。
总的来说,我认为在提供的示例中,我不会使用int或unchecked-inc-int,而是使用long和unchecked-inc来获得最佳性能。