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