评论由:alexmiller发表
我认为除了原始的long或double之外,不应该在loop/recur中支持任何类型。假设这是正确的,这将是一个预期的行为。
在最近的一轮主要的数字/原始重构中,我们做出了只支持原始long和double的决定。其结果是,原始的int循环难以优化 - 我遇到这种情况主要是当在Java互操作中在循环(例如)String、collection或array操作时(所有这些都是int索引的)。
关于unchecked-inc
和unchecked-inc-int
,有两个变体的主要原因不是性能而是行为。特别是,散列操作往往期望获得32位int溢出语义,而不是64位int溢出语义。
总结来说,我认为在提供示例中,我不会用int或unchecked-inc-int
编写,而是用long和unchecked-inc
来获得最佳性能。