我想使用SQLKorma執行一些SQL語句。起初,我寫了下面的代碼:「For」失敗,但「循環」工作
(let [sqls (-> (slurp "resources/database.sql")
(str/split #";")
butlast)]
(for [sql sqls]
(k/exec-raw sql)))
但原因不明,這是行不通的。 for循環完全跳過。然而這工作:
(let [sqls (-> (slurp "resources/database.sql")
(str/split #";")
butlast)]
(loop [sqls sqls]
(if (not (empty? sqls))
(do
(k/exec-raw (first sqls))
(recur (rest sqls))))))
爲什麼會發生這種情況?爲什麼for循環失敗?
在Clojure'for'不是一個循環,它是列表理解。不要讓這個名字欺騙你。 – ivant