map析构对下面集中数据结构有效:
1.clojure原生的hash-map、array-map,以及记录类型
2.任何实现了java.util.Map的对象
3.get方法所支持的任何对象。
clojure提供 :keys、:strs、:syms来指定map中key的类型。
:keys表示key的类型是关键字;
:strs表示key的类型是字符串;
:syms表示key的类型是符号。
ex:
:keys
(let[{:keys [name:name age:age location:location} chas])
=====>>>>>
(let [{:keys[name age location]} chas])
:strs
(def brian {"name" "Brian" "age" 31 "location" "British Columbia" })
======>>>>>
(let [{strs [name age location]} brain])
:syms
(def christophe {"name "Christophe" 'age 33 'location "British Columbia"})
=======>>>>>>
(let [{syms [name age location]} christophe])