【问题标题】:Why build a Clojure string using literal characters?为什么要使用文字字符构建 Clojure 字符串?
【发布时间】:2014-09-03 07:29:40
【问题描述】:

刚才在看一些代码,碰到this line

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

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

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

但这是在a core library 中由一些可敬的 Clojure 资深人士撰写的,这让我觉得也许是有原因的。什么原因?表现?还是什么?

【问题讨论】:

  • 我猜是风格选择。我不止一次想过,“伙计,我讨厌这些愚蠢的引语。”。

标签: clojure rationale


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-11
    • 2019-12-21
    • 2012-07-24
    • 1970-01-01
    • 2013-11-26
    • 2020-09-25
    • 2011-11-03
    • 2011-07-11
    相关资源
    最近更新 更多