Say mam mapę tej postaci:lepszy sposób na gnieździe jeśli-let w Clojure
(def m {:a "A" :b "B"})
i chcę coś zrobić, jeśli :a
i :b
są zarówno nie zerowa, co mogę zrobić:
(if-let [a (:a m)]
(if-let [b (:b m)]
... etc))
lub
(if (and (:a m) (:b m))
(let [{a :a b :b} m]
... etc))
lub nawet
(if (every? m [:a :b])
(let [{a :a b :b} m]
... etc))
Czy jest to lepszy sposób (tj. Jedna linia), aby to osiągnąć?
Nie wiem, to jest odpowiedź na pytanie ... – noahlz
nie "(każdy? jakiś? ...)" być lepszy? w ten sposób unikniesz podwójnej negacji – kosii
nie? może przestać sprawdzać, kiedy zostanie znaleziony, na niewielką poprawę czasu w wielu przypadkach –