Is there some Clojure library which has a function acts as Java's StringUtils.defaultIfBlank(str, default)?
我需要一个带有两个参数
1 2 3 4 | (defn default-if-blank [input default] (if (clojure.string/blank? input) default input)) |
我可以实现该功能,但是我认为Clojure世界中将有很多好的实用程序库,例如Java世界中的Apache commons或Guava。
由我自己而不是使用某些库来实现这些功能是否常见? 我是Clojure的新手,所以这可能是愚蠢的问题,但是任何建议都会对我有所帮助。 谢谢。
您所拥有的是非常正常的,并且在高质量的Clojure代码中会很好。 这样写是完全可以的,因为Clojure是一种简洁的语言,因此不会增加太多的智力开销。
在某些情况下,您将不需要它,例如,如果要从任何集合中提取值,则
1 2 3 4 | user> (get {1"one" 2"two"} 42 "infinity") "infinity" |
和销毁地图等内容时的可选参数:
1 2 3 4 5 6 7 8 9 | user> (let [{a :a b :b c :c :or {a :default-a b :default-b}} {:a 42 :c 99}] (println"a is" a) (println"b is" b) (println"c is" c)) a is 42 b is :default-b c is 99 |
尽管我每天使用的代码库中有很多