(def filename "dictionary2.txt")
(defn check_word [filename word]
(with-open [r (clojure.java.io/reader filename)]
(doseq [line (line-seq r)]
(if (compare line word)
(println word)))))
(check_word filename "wizard")
打印“找到”的数量与文本文件中的行数一样多。为什么if语句总是返回true?字典文件中确实存在“向导”一词。
答案 0 :(得分:1)
根据文档,compare function返回负数,零或正数,具体取决于其参数的顺序。数字被视为truthy values,因此它们总是使条件表达式的 then 分支执行。 Clojure中唯一的 falsey 值为nil
和false
。
如果您想检查line
是否等于word
,您只能(= line word)
使用DATA: wa_collectoraction TYPE zcollectoraction,
it_collectoraction LIKE STANDARD TABLE OF zcollectoraction.
。