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

时间:2014-07-13 00:55:50

标签: clojure rationale

我刚才正在阅读一些代码,我遇到了this line

(str cache \, \space lru \, \space tick \, \space limit)

这对我来说很奇怪。使用连续的文字字符,而不是包含这些字符的字符串。我希望更像这样的东西:

(str cache ", " lru ", " tick ", " limit)

但是这是由一些古老的Clojure老兵写的a core library,这让我觉得可能还有原因。原因是什么?性能?或者是什么?

1 个答案:

答案 0 :(得分:6)

没有充分的理由。除了丑陋之外,它可能比带字符串的版本更糟糕。您也可以写(join ", " [cache lru tick limit]),这是我的偏好,但我可以理解选择将其写出来。但是,使用字符而不是字符串是莫名其妙的。我无法追踪添加此行的提交,因为repo已经被破坏并且在切换名称时至少重建了两次,但我打赌没有充分的理由。也许是一些被误导的表演想法。