gpt4 book ai didi

file-io - 在 clojure 中,为什么从空文件中分割字符串会返回 1 个元素?

转载 作者:行者123 更新时间:2023-12-02 11:57:59 25 4
gpt4 key购买 nike

考虑以下因素:

=> (even? (count []))
true

到目前为止一切顺利。现在考虑(假设我的文件为空):

(odd? (count (str/split (slurp my-file) #"\|")))
true

err ...为什么从空文件返回的向量不是偶数(零)?

=>(str/split (slurp my-file) #"\|")
[""]

啊,有人可以解释一下为什么在这种情况下返回空字符串吗?

我正在尝试确定文件中是否有奇数条记录。

最佳答案

clojure.string/split 使用 java.util.regex.Pattern/split 进行拆分。请参阅this question about Java进行解释。也就是说,split 会返回模式的第一个匹配项之前的所有内容作为第一个拆分,即使该模式根本不匹配。

测试集合(列表、数组、映射、字符串等)是否为空的规范方法是对其调用 seq,这将返回 nil 对于空集合。

(defn odd-number-of-records? [filename]
(let [txt (slurp filename)]
(when (seq txt)
(odd? (count (str/split txt #"\|"))))))

关于file-io - 在 clojure 中,为什么从空文件中分割字符串会返回 1 个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6432233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com