字典

字典在 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"