当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Elixir Access.key!用法及代码示例


Elixir语言中 Access.key! 相关用法介绍如下。

用法:

key!(key)
@spec key!(key()) :: access_fun(data :: struct() | map(), current_value :: term())

返回一个访问映射/结构中给定键的函数。

返回的函数通常作为访问器传递给 Kernel.get_in/2 Kernel.get_and_update_in/3 和朋友。

类似于 key/2 ,但如果键不存在,则返回的函数会引发。

例子

iex> map = %{user: %{name: "john"}}
iex> get_in(map, [Access.key!(:user), Access.key!(:name)])
"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(map, [Access.key!(:user), Access.key!(:unknown)])
** (KeyError) key :unknown not found in: %{name: "john"}

如果访问的结构不是映射/结构,则会引发错误:

iex> get_in([], [Access.key!(:foo)])
** (RuntimeError) Access.key!/1 expected a map/struct, got: []

相关用法


注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Access.key!(key)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。