使用預設值對地圖進行解構

有時,你希望在地圖下解析金鑰,該地圖可能不在地圖中,但你希望破壞結構值的預設值。你可以這樣做:

(def my-map {:a 3 :b 4})
(let [{a :a
       b :b
       :keys [c d]
       :or {a 1
            c 2}} my-map]
  (println a b c d))
  ;= 3 4 2 nil