スポンサーリンク

2015年8月8日

[Elixir]条件分岐を習得する

とある錬金術師の万能薬(Elixir)

Goal

Elixirの条件分岐を習得する。

Dev-Environment

OS: Windows8.1
Erlang: Eshell V6.4, OTP-Version 17.5
Elixir: v1.0.4

Wait a minute

条件分岐のやり方を見ていきます。

Index

Conditional branching
|> case
|> cond
|> if and unless

case

caseの使い方について。
軽いまとめ・・・
  • 複数のパターンと比較できる
  • 定義済みの変数とマッチさせる場合^(キャレット)が必要
  • guardを指定できる
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

今回は条件分岐についてでした。
キーワードリストってのがありましたけど・・・
ただの引数ですよね・・・

Bibliography

人気の投稿