У меня есть карта clojure. Назовите его opts
. Я знаю два способа получить значения с этой карты, чтобы, если нет ключа, получите какое-то значение по умолчанию:
(let [opts {}
title-1 (or (:title opts) "Default title")
title-2 (:title opts "Default title")]
(println title-1 title-2))
Я видел, что некоторые библиотеки (quil, incanter) использовали первый подход с or
. Мне кажется, что второй подход более краток и чище. Есть ли преимущества в первом подходе?
Недостатком использования (or (:title opts) "Default value")
является то, что мы не можем передавать false
и nil
в качестве значений больше, в этом случае всегда используется значение по умолчанию.