Elixir语言中 Access.key
相关用法介绍如下。
用法:
key(key, default \\ nil)
@spec key(key(), term()) ::
access_fun(data :: struct() | map(), current_value :: term())
返回一个访问映射/结构中给定键的函数。
返回的函数通常作为访问器传递给
、 Kernel.get_in/2
和朋友。Kernel.get_and_update_in/3
如果键不存在,则返回的函数使用默认值。这可用于指定默认值并安全地遍历丢失的键:
iex> get_in(%{}, [Access.key(:user, %{}), Access.key(:name, "meg")])
"meg"
这在使用更新函数时也很有用,允许我们在遍历数据结构进行更新时引入值:
iex> put_in(%{}, [Access.key(:user, %{}), Access.key(:name)], "Mary")
%{user: %{name: "Mary"}}
例子
iex> map = %{user: %{name: "john"}}
iex> get_in(map, [Access.key(:unknown, %{}), Access.key(:name, "john")])
"john"
iex> get_and_update_in(map, [Access.key(:user), Access.key(:name)], fn prev ->
...> {prev, String.upcase(prev)}
...> end)
{"john", %{user: %{name: "JOHN"}}}
iex> pop_in(map, [Access.key(:user), Access.key(:name)])
{"john", %{user: %{}}}
如果访问的结构不是映射或结构,则会引发错误:
iex> get_in([], [Access.key(:foo)])
** (BadMapError) expected a map, got: []
相关用法
- Elixir Access.key!用法及代码示例
- Elixir Access.filter用法及代码示例
- Elixir Access.all用法及代码示例
- Elixir Access.get用法及代码示例
- Elixir Access.fetch用法及代码示例
- Elixir Access.at!用法及代码示例
- Elixir Access.at用法及代码示例
- Elixir Access.fetch!用法及代码示例
- Elixir Access.elem用法及代码示例
- Elixir Access.pop用法及代码示例
- Elixir Access.get_and_update用法及代码示例
- Elixir Access用法及代码示例
- Elixir Application.get_env用法及代码示例
- Elixir Application用法及代码示例
- Elixir Agent.get_and_update用法及代码示例
- Elixir Atom用法及代码示例
- Elixir Atom.to_string用法及代码示例
- Elixir Agent.get用法及代码示例
- Elixir Atom.to_charlist用法及代码示例
- Elixir Agent.cast用法及代码示例
- Elixir Agent.start_link用法及代码示例
- Elixir Agent.update用法及代码示例
- Elixir Agent.stop用法及代码示例
- Elixir Application.ensure_started用法及代码示例
- Elixir Agent.start用法及代码示例
注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Access.key(key, default \\ nil)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。