Elixir v1.2.0 Access behaviour
Dictionary-like access to data structures via the foo[bar] syntax.
This module also empowers Kernels nested update functions
Kernel.get_in/2, Kernel.put_in/3, Kernel.update_in/3 and
Kernel.get_and_update_in/3.
Examples
Out of the box, Access works with built-in dictionaries: Keyword
and Map:
iex> keywords = [a: 1, b: 2]
iex> keywords[:a]
1
iex> map = %{a: 1, b: 2}
iex> map[:a]
1
iex> star_ratings = %{1.0 => "★", 1.5 => "★☆", 2.0 => "★★"}
iex> star_ratings[1.5]
"★☆"
Furthermore, Access transparently ignores nil values:
iex> keywords = [a: 1, b: 2]
iex> keywords[:c][:unknown]
nil
The key comparison must be implemented using the === operator.
Summary
Functions
Fetches the container’s value for the given key
Gets the container’s value for the given key
Gets and updates the container’s value for the given key, in a single pass
Types
Functions
Fetches the container’s value for the given key.
Gets the container’s value for the given key.
Gets and updates the container’s value for the given key, in a single pass.
The argument function fun must receive the value for the given key (or
nil if the key doesn’t exist in container). It must return a tuple
containing the get value and the new value to be stored in the container.
This function returns a two-element tuple.
The first element is the get value, as returned by fun.
The second element is the container, updated with the value returned by fun.