私はclojureマップを持っています。名前はopts
です。私は、キーを取得いくつかのデフォルト値が存在しない場合は、そのようなことを、このマップから値を取得するための2つの方法を知っている: clojureマップのデフォルト値
(let [opts {}
title-1 (or (:title opts) "Default title")
title-2 (:title opts "Default title")]
(println title-1 title-2))
は、私はいくつかのライブラリを見に(クイル、incanterは)
or
との最初のアプローチを使用します。 2番目のアプローチはより簡潔できれいです。最初のアプローチには利点がありますか?
(or (:title opts) "Default value")
を使用しないと、
false
と
nil
を値として渡すことができなくなります。この場合、デフォルト値が常に使用されます。
'(get opts:title"デフォルトのタイトル ")'を使用することもできます。 – ponzao
@ponzao mapが 'nil'の場合、' get'は 'NullPointerException'を投げないので、さらに良いかもしれません。 'nil'または指定されていればデフォルト値を返します。 –
@IvanKoblik '(:title nil" Default ")'もうまくいきます。 –