官术网_书友最值得收藏!

Keyword lists

A keyword list is a list in which its elements have a specific format: they are tuples where the first element is an atom (the second element can be of any type), as demonstrated in the following example:

iex> [name: "Gabriel", age: 1] = [{:name, "Gabriel"}, {:age, 1}]
[name: "Gabriel", age: 1]

We can create keyword lists using the following syntax:

iex> keyword_list = [name: "Gabriel", age: 1]
[name: "Gabriel", age: 1]
iex> keyword_list[:name]
"Gabriel"

As you can see from the previous snippet, a keyword list is indeed a list of tuples, with an atom; you can access values in a keyword list using the same syntax as you would in maps. As an alternative, you can use the get function from the Keyword module. Note that this way of declaring a keyword list is just syntatic sugar, as internally this still is a list of tupleswhich means that searching for an item in a keyword list is O(n), and not O(1) as in maps.

In a keyword list, contrary to what happens in maps, you can have more than one value for a given key. Also, you can control the order of its elements. Usually, keyword lists are used to allow functions to receive an arbitrary number of optional arguments. We'll be showing an example of this when we look at named functions later in this chapter. You can find all the operations you can do on a keyword list at https://hexdocs.pm/elixir/Keyword.html.

主站蜘蛛池模板: 安康市| 钦州市| 灵寿县| 灌阳县| 桦南县| 张北县| 和田市| 沅陵县| 牟定县| 汉中市| 满城县| 旌德县| 和硕县| 松原市| 宜章县| 临沂市| 湘潭市| 泌阳县| 那坡县| 青铜峡市| 射阳县| 营口市| 侯马市| 洛隆县| 炎陵县| 洪洞县| 华容县| 庆安县| 区。| 横峰县| 云阳县| 灵武市| 资讯 | 应用必备| 永安市| 新建县| 大理市| 芦山县| 沾益县| 达日县| 嘉祥县|