clojure.string/split 和 clojure.string/split-lines 继承了 java.lang.String#split(String, int) 精怪默认行为,即移除尾随的连续分隔符
(clojure.string/split "banana" #"an")
⇒ ["b" "" "a"]
(clojure.string/split "banana" #"na")
⇒ ["ba"]
(clojure.string/split "nanabanana" #"na")
⇒ ["ba"]
在 split-lines 的情况下,逐行处理文件并将结果重新连接会导致文件末尾的换行符被截断。在这两种情况下,这些行为令人惊讶,无法从文档字符串中推断出来。split 的一个解决方法是传递一个 -1 的限制。
*建议:* 由于当前用户可能依赖于当前的行为,因此附带的更新仅用于更新文档字符串以警告此行为并建议以 -1 作为限制来解决这个问题。
*补丁:* clj-1360-2.patch