字典
字典在 Dict 核心庫中實現。
將字元對映到值的唯一鍵的字典。鍵可以是任何類似的型別。這包括 Int,Float,Time,Char,String 和元組或類似型別的列表。
插入,刪除和查詢操作都需要 O(log n)時間。
與元組和記錄不同,字典可以更改其結構,換句話說,可以新增和刪除鍵。
可以通過鍵更新值。
還可以使用動態金鑰訪問或更新值。
訪問值
你可以使用 Dict.get
函式從 Dictionary 中檢索值。
Dict.get
的型別定義:
get : comparable -> Dict comparable v -> Maybe v
它將始終返回 Maybe v
,因為可以嘗試通過不存在的鍵獲取值。
import Dict
initialUsers =
Dict.fromList [ (1, "John"), (2, "Brad") ]
getUserName id =
initialUsers
|> Dict.get id
|> Maybe.withDefault "Anonymous"
getUserName 2 -- "Brad"
getUserName 0 -- "Anonymous"
更新值
使用 Maybe.map
執行對 Dictionary 的更新操作,因為可能不存在所請求的金鑰。
import Dict
initialUsers =
Dict.fromList [ (1, "John"), (2, "Brad") ]
updatedUsers =
Dict.update 1 (Maybe.map (\name -> name ++ " Johnson")) initialUsers
Maybe.withDefault "No user" (Dict.get 1 updatedUsers) -- "John Johnson"