在下面的函数中,我cond
代替了case
。我花了很长时间选出此功能。我正在学习Clojure,所以错误对我来说并不明显。当我尝试运行代码直至map
功能正常时(使用草书/ Intellij调试器),Intellij抱怨:There is no executable code at core.clj:144
。如果clojure编译器知道这一点,是否可以选择在编译时获得警告?编译器(或棉绒)还可以在我的代码中进行其他检查吗?
(defn uri-gen [uri fields line]
(let [remo "[//\\:*?()<>|.%'\"&]"]
(cond (count fields)
0 (correct-uri ...)
1 (let ...)
(correct-empty
uri
(apply str
(map (fn [it] ...)))))))
不幸的是,Clojure中的编译器警告和错误消息通常是简洁的,荒谬的,或者只是显而易见的。
我不确定在这种情况下是否有帮助,但是您可以尝试使用eastwood
Clojure皮棉工具(请参阅Clojure工具箱中的其他工具)。我还广泛使用了Plumatic Schema,它帮助我避免了许多简单的类型错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句