2024 年 Clojure 状态调查!中分享您的想法。

欢迎!请参阅 关于 页面,了解更多关于这个工作的信息。

+1
Clojure

(< nil 3) 产生了错误 无法调用 "Object.getClass()" 因为 "x" 为空。这里有什么改进的空间吗?

我的直觉告诉我,这还没有做是因为性能原因,但也有用户在 Slack 上指出,它在 Numbers.javastatic public Boolean lt(Object x, Object y) { 分支中,所以添加空检查以改进错误信息可能也不会太糟糕。

谢谢,
Devin

1 答案

+1

关于性能方面的考虑,您的直觉是正确的。我非常愿意看到现有代码与检查空值的代码之间的性能比较。我认为任何潜在的变化(或不变)都应该从这里开始。

这是否可以通过为 `null` 输入的重载来处理?例如,`Boolean lt(null x, Object y) {} Boolean lt(Object x, null y) {} Boolean lt (null x, null y) {}` 或类似的形式?
...