评论者:alexmiller
我认为除了原始的 long 或 double 之外,没有打算在 loop/recur 中支持其他类型。假设这是正确的,这将是一种预期行为。
在最近的几次数字/原始重构中,我们做出了仅支持原始 long 和 double 的决定。其后果之一是,原始 int 循环难以优化——我遇到这种问题主要是当我在 Java 互通时在一个紧循环中操作 String、集合或数组时(所有这些都是 int 索引)。
关于 unchecked-inc 与 unchecked-inc-int,有两个变体的主要原因不是性能,而是行为。特别是,散列操作通常期望得到 32 位 int 溢出语义,而不是 64 位 int 溢出语义。
总之,我认为在所提供的示例中,我不会使用 int 或 unchecked-inc-int,而是使用 long 和 unchecked-inc,如果您在寻求最佳性能。