当在映射解构中意外交换关键字和(之前未定义的)符号时,会正确地抛出错误
(let (link: {:b b} {:b 1}) b)
=> CompilerException java.lang.RuntimeException: 无法在当前上下文中解析符号: b,编译时:(/tmp/form-init7939480206147277345.clj:1:1)
但是,当定义了符号(以下使用 "a")时,存在一个更为微妙的问题
(def a 0)
(let (link: {:a a} {:a 1}) a)
=> nil
期望:解构应只接受 :or、:keys、:as、:strs 和 :syms 作为解构映射的键。