0
我將這個Java函數複製到Clojure中。在Clojure中做這個Java函數的慣用方式是什麼?
Config createConfig(Map<String, String> options) {
Config conf = new Config();
String foo = options.get("foo");
if (foo != null) { conf.setFoo(foo); }
String bar = options.get("bar");
if (bar != null) { conf.setBar(bar); }
// many other configs
return conf;
}
我想出了這個,
(defn create-config [options]
(let [conf (Config.)]
(when-let [a (:foo options)] (.setFoo a))
(when-let [a (:bar options)] (.setBar a))
conf))
有沒有更好的方式來做到這一點?
我喜歡你的'create-config'。它對我來說很好看。由於'clojure.string/capitalize',宏對我來說有點矯枉過正。謝謝! – woodings 2014-12-05 08:16:41
如果你這樣做了一次,宏是絕對矯枉過正的。但是如果你做了很多次,這可能是值得的。 – 2014-12-05 15:14:10