评论由:alexmiller
我认为只有原始的longs或doubles应该被支持在loop/recur中。假设这是正确的,那么这将是预期的行为。
上一次主要的数字/原始重构决定了只支持原始的longs和doubles。一个结果是原始的int循环难以优化 - 我遇到这种情况的主要时间是当在(例如)String、集合或数组操作中进行Java交互操作并且每次循环时(所有这些都是int索引的)。
关于unchecked-inc和unchecked-inc-int的比较,这两种变种的主要原因不是性能而是行为。特别是,哈希运算通常期望得到32位int溢出语义,而不是64位int溢出语义。
总之,我认为在给出的示例中,我不会用int或unchecked-inc-int,而是使用long和unchecked-inc以达到最佳性能。