Goal
Elixirの条件分岐を習得する。
Dev-Environment
OS: Windows8.1
Erlang: Eshell V6.4, OTP-Version 17.5
Elixir: v1.0.4
Erlang: Eshell V6.4, OTP-Version 17.5
Elixir: v1.0.4
Wait a minute
条件分岐のやり方を見ていきます。
Index
Conditional branching
|> case
|> cond
|> if and unless
|> case
|> cond
|> if and unless
case
caseの使い方について。
軽いまとめ・・・
- 複数のパターンと比較できる
- 定義済みの変数とマッチさせる場合^(キャレット)が必要
- guardを指定できる
guard句について・・・
参考: elixir-lang - case, cond and if (2 Expressions in guard clauses)
参考: elixir-lang - case, cond and if (2 Expressions in guard clauses)
Example:
iex> list = [1,2,3]
[1, 2, 3]
iex> case list do
...> [1,2,3] ->
...> IO.puts "match [1,2,3]"
...> _ ->
...> IO.puts "any match"
...> end
[1,2,3]
:ok
iex> case list do
...> [1,_,3] ->
...> IO.puts "[1,_,3]"
...> _ ->
...> IO.puts "any match"
...> end
[1,_,3]
:ok
Example:
iex> result = {:ok, [1,2,3]}
{:ok, [1, 2, 3]}
iex> case result do
...> {:ok, x} ->
...> x
...> _ ->
...> IO.puts "any match"
...> end
[1, 2, 3]
cond
condの使い方について。
軽いまとめ・・・
- 複数の条件をチェックできる
- else ifみたいなもん
- 一致する条件がないとエラーになる
- nilとfalse以外はtrue扱い
Example:
iex> x = 1
1
iex> cond do
...> x == 0 -> IO.puts "x == 0"
...> x == 1 -> IO.puts "x == 1"
...> x == 2 -> IO.puts "x == 2"
...> end
x == 1
:ok
if and unless
ifとunlessの使い方について。
軽いまとめ・・・
- 一つの条件をチェックする
- elseもあるよ
Example:
iex> if true do
...> IO.puts true
...> end
true
:ok
iex> if nil do
...> IO.puts true
...> end
nil
Example:
iex> unless true do
...> IO.puts true
...> end
nil
iex> unless nil do
...> IO.puts true
...> end
true
:ok
Speaking to oneself
今回は条件分岐についてでした。
キーワードリストってのがありましたけど・・・
ただの引数ですよね・・・
ただの引数ですよね・・・