我在代码中定义了一个地图,例如:
(def templates {:list1 {:create_time "create_time"
:recharge_amount "recharge"
:invest_amount "invest"
;; something else
}
:list2 {:create_time "ct"
;; something else
}
;;something else
})
Run Code Online (Sandbox Code Playgroud)
我希望地图按照我定义的顺序排列。怎么解决呢?
如果您的数据不会更改,则可以使用array-map:
(def templates
(array-map
:list1 {}
:list2 {}
:list3 {}))
(seq templates)
;; => ([:list1 {}] [:list2 {}] [:list3 {}])
(keys templates)
;; => (:list1 :list2 :list3)
Run Code Online (Sandbox Code Playgroud)
您问为什么要用恒定数据约束?好吧,数组映射基本上可以在任何修改操作之后变成哈希映射(如果其内容变得太大而无法提供有效的查找)。
或者,如果您愿意接受外部依赖关系,则可以查看合金/有序合金是否符合您的需求。