codecamp

Clojure Maps

映射是将键映射到值的集合。提供了两种不同的映射类型 - 哈希和排序。HashMaps 需要正确支持hashCode和equals的键。 SortedMaps 需要实现可比较的键或比较器的实例。

可以通过两种方式创建映射,第一种是通过哈希映射方法。

创建 - HashMaps

HashMaps具有典型的键值关系,并通过使用哈希映射函数创建。

(ns clojure.examples.example   
  (:gen-class))
(defn example []   
  (def demokeys (hash-map "z" "1" "b" "2" "a" "3"))   
  (println demokeys))
(example)

输出

上面的代码输出以下结果。

{z 1, b 2, a 3}

创建 - SortedMaps

SortedMaps 具有根据关键元素对元素进行排序的独特特性。以下的示例显示如何使用sorted-map函数创建排序的映射。

(ns clojure.examples.example   
  (:gen-class))
(defn example []   
  (def demokeys (sorted-map "z" "1" "b" "2" "a" "3"))   
  (println demokeys))
(example)

上面的代码输出以下结果。

{a 3, b 2, z 1}

从上述程序,您可以清楚地看到映射中的元素按照键值进行排序。以下是可用于映射的方法。

序号 映射 & 说明
1 get

返回映射到键的值, 如果键不存在, 则为未找到或零。

2 contains
查看映射是否包含必需的键。
3 find
返回键的映射项。
4 keys
返回映射中的键列表。
5 vals

返回该图的值的列表。

6 dissoc
从映射中分离键值项。
7 merge
将两个映射项合并为一个单独的映射项。
8 merge-with
返回一个映射,其中包含第一个映射的其余映射。
9 select-keys

返回仅包含映射中的键的项的映射。

10 rename-keys
将当前HashMap中的键重命名为新定义的。
11 map-invert
反转映射, 使这些值成为键, 反之亦然。


Clojure 载体
Clojure 命名空间
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Clojure Useful Resources

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }