{{cljs.core/long}} 和 {{cljs.core/unchecked-long}} 的文档字符串指出:“通过去除小数部分进行强制转换为 long。与 `int' 相同。”然而,它们的实现和行为与 {{cljs.core/int}} 不同。以下是一些示例
|| {{x}} || {{(int x)}} || {{(long x)}} ||
| {{-5671919744}} | {{-1376952448}} | {{-5671919744}}
| {{##Inf}} | {{0}} | {{##Inf}} |
| {{"a"}} | {{0}} | {{##NaN}} |
| {{"24248082057"}} | {{-1521721719}} | {{24248082057}} |
由于 unchecked-long 的实现与 long 相同,因此结果是相同的。我提出的解决方案是只是丢弃相同性的声明。