Clojure 中的惯用语:(drop 1 str)还是(rest str)?
Posted
技术标签:
【中文标题】Clojure 中的惯用语:(drop 1 str)还是(rest str)?【英文标题】:Idiomatic in Clojure: (drop 1 str) or (rest str)? 【发布时间】:2011-08-02 17:27:49 【问题描述】:这里是 Clojure 的简单问题。处理字符串时哪个更惯用?在处理其他数据类型时哪个更惯用?哪个效率更高?
(drop 1 str)
或
(rest str)
【问题讨论】:
【参考方案1】:无论你在处理什么,rest
都会更有效率,但差异会微不足道,以至于无趣。
确保您知道自己想要rest
还是next
,因为在某些情况下它很重要。 rest
比较懒惰,而且可能更经常是正确的,但是如果你在需要 next
时使用 rest
,结果可能很难追踪。
对于字符串......都不行!使用内置子字符串运算符subs
:
user> (subs "hears" 1)
"ears"
rest
很好,但它会产生一个字符序列而不是字符串;通常你会发现一个字符串更容易处理,而且很简单,可以稍后再将它转换成一个字符序列。
【讨论】:
drop
和 lasy
一样吗?还是drop
更像next
?以上是关于Clojure 中的惯用语:(drop 1 str)还是(rest str)?的主要内容,如果未能解决你的问题,请参考以下文章