
- Clojure 教程
- Clojure - 首頁
- Clojure - 概述
- Clojure - 環境
- Clojure - 基本語法
- Clojure - REPL
- Clojure - 資料型別
- Clojure - 變數
- Clojure - 運算子
- Clojure - 迴圈
- Clojure - 決策
- Clojure - 函式
- Clojure - 數字
- Clojure - 遞迴
- Clojure - 檔案 I/O
- Clojure - 字串
- Clojure - 列表
- Clojure - 集合
- Clojure - 向量
- Clojure - Map
- Clojure - 名稱空間
- Clojure - 異常處理
- Clojure - 序列
- Clojure - 正則表示式
- Clojure - 斷言
- Clojure - 解構
- Clojure - 日期和時間
- Clojure - 原子
- Clojure - 元資料
- Clojure - StructMaps
- Clojure - 代理
- Clojure - 觀察者
- Clojure - 宏
- Clojure - 參考值
- Clojure - 資料庫
- Clojure - Java 介面
- Clojure - 併發程式設計
- Clojure - 應用
- Clojure - 自動化測試
- Clojure - 庫
- Clojure 有用資源
- Clojure - 快速指南
- Clojure - 有用資源
- Clojure - 討論
Clojure - Map
Map 是一種將鍵對映到值的集合。提供了兩種不同的 map 型別 - 雜湊和排序。HashMaps 需要正確支援 hashCode 和 equals 的鍵。SortedMaps 需要實現 Comparable 的鍵,或 Comparator 的例項。
Map 可以透過兩種方式建立,第一種是透過 hash-map 方法。
建立 - HashMaps
HashMaps 具有典型的鍵值關係,並且是透過使用 hash-map 函式建立的。
(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 函式建立排序的 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}
從上面的程式中,您可以清楚地看到 map 中的元素是根據鍵值排序的。以下是 map 可用的方法。
序號 | Map & 描述 |
---|---|
1 | get
返回對映到鍵的值,如果鍵不存在則返回 not-found 或 nil。 |
2 | contains?
檢視 map 是否包含所需的鍵。 |
3 | find
返回鍵的 map 條目。 |
4 | keys
返回 map 中的鍵列表。 |
5 | vals
返回 map 中的值列表。 |
6 | dissoc
從 map 中分離鍵值條目。 |
7 | merge
將兩個 map 條目合併為一個 map 條目。 |
8 | merge-with
返回一個 map,該 map 由其餘 map 連線到第一個 map 上組成。 |
9 | select-keys
返回一個 map,該 map 僅包含 map 中那些鍵在 keys 中的條目。 |
10 | rename-keys
將當前 HashMap 中的鍵重新命名為新定義的鍵。 |
11 | map-invert
反轉 map,以便值成為鍵,反之亦然。 |
廣告