iT邦幫忙

DAY 26
1

蠻可愛的 Erlang 與 Elixir系列 第 26

Elixir 的 range, keyword list

Range

Elixir中提供了range,方便我們指定一個範圍的數字.
來看下面的例子:

iex(1)> myrange = 1..3
1..3
iex(2)> 2 in myrange
true
iex(3)> -2 in myrange
false

使用m..n方式來指定range.因為range是可以計數的(enumerable),
可以搭配Enum module使用.
例如:

iex(4)> Enum.each(-2..2, &IO.puts/1)
-2
-1
0
1
2
:ok

Keyword List

keyword list是特殊的list,每個元素是一個雙元素的tuple.

可以用以下兩種方式:

iex(5)> monsters = [{:godzilla, 1954}, {:mothra, 1961}, {:gamera, 1965}]
[godzilla: 1954, mothra: 1961, gamera: 1965]

注意到godzilla要用 :godzilla 明確代表atom的方式.

iex(6)> monsters2 = [godzilla: 1954, mothra: 1961, gamera: 1965]         
[godzilla: 1954, mothra: 1961, gamera: 1965]

兩種方式,最後結果是一樣的.可以視自己喜歡的方式使用.

Elixir有提供Keyword模組,對keyword list進行操作.
例如:

iex(7)> Keyword.get(monsters, :godzilla)
1954

也可以用這樣的方式取出

iex(8)> monsters[:godzilla]
1954

上一篇
Elixir 的 String,Character list與function construct
下一篇
Elixir 的 Control flow
系列文
蠻可愛的 Erlang 與 Elixir30

尚未有邦友留言

立即登入留言