评论者:alexmiller
我认为 loop/recur 中不打算支持除原始 long 或 double 以外的任何类型。如果这是正确的,那么这将是一种预期的行为。
在最近一轮主要的数值/原始重构中,我们决定只支持原始 long 和 double。这一决策的一个后果是,原始 int 循环难以优化 - 我遇到这种情况的主要时间是在运用 Java 互操作进行密集循环操作时(例如在处理 String、集合或数组操作时,所有这些都是基于 int 索引的)。
关于 unchecked-inc 与 unchecked-inc-int,有两个变种存在的主要原因不是性能而是行为。特别是,hashing 操作通常期望获得 32 位整型溢出语义,而不是 64 位整型溢出语义。
总之,我认为在给定的示例中,我不会用 int 或 unchecked-inc-int 来编写它,而是用 long 和 unchecked-inc 来寻求最佳性能。