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

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.

主站蜘蛛池模板: 类乌齐县| 贡觉县| 福泉市| 关岭| 手游| 信宜市| 盘山县| 改则县| 济宁市| 古交市| 株洲县| 永胜县| 富阳市| 长岭县| 全椒县| 昂仁县| 西丰县| 安新县| 山东省| 沁水县| 淳安县| 七台河市| 北碚区| 陆川县| 河源市| 邻水| 麻江县| 崇信县| 凤翔县| 兖州市| 翼城县| 手游| 八宿县| 紫金县| 仪征市| 怀安县| 怀集县| 建昌县| 玉门市| 溧阳市| 太谷县|