对地图进行解构看起来与我相反.谁能解释一下发生了什么?
我希望这是解构地图的正确形式
; =>(让[{:aa:bb} {:a 1:b 2}] [ab])
返回Exception Unsupported binding form: :a clojure.core/destructure/pb--4541 (core.clj:4029).Clojure文件说下面是正确的方法.但它看起来键和值是相反的.
这应该是正确的方式:
; =>(让[{a:ab:b} {:a 1:b 2}] [ab])[1 2]
在解构地图时会发生什么?
它并没有真正逆转,实际上它是有道理的.它表示:将符号'a'绑定到与关键字关联的值:a
当地图使用关键字作为键时,您是否意识到这一点?
(let [{:keys [a b]} {:a 1 :b 2}] [a b])
Run Code Online (Sandbox Code Playgroud)
更整洁,优雅!
如果您的键是符号或字符串,则存在其他变体.