Я копирую эту функцию Java в Clojure.Что такое идиоматический способ выполнения этой функции Java в Clojure?
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
Макрос определенно переполнен, если вы делаете это один раз. Но если вы делаете это много раз, это может быть полезно. –