为什么使用文字字符构建Clojure字符串?



我刚才正在阅读一些代码,然后我看到了这一行:

(str cache , space lru , space tick , space limit)
这对我来说很奇怪。使用连续的文字字符,而不是包含这些字符的字符串。我希望更像这样:
(str cache ", " lru ", " tick ", " limit)

但是这是在一个核心库中由一些可敬的Clojure老手编写的,这让我觉得可能有原因。原因是什么?性能?还是别的什么?

没有好的理由。它可能比使用字符串的版本性能更差,而且看起来更丑。你也可以写成(join ", " [cache lru tick limit]),这是我的偏好,但我可以理解选择手写。但是,使用字符而不是字符串是令人费解的。我无法追踪到添加这一行的提交,因为在更改名称的过程中,回购至少被销毁和重建了两次,但我敢打赌没有什么好的理由。也许是一些错误的性能理念。

最新更新