Elixir do Block
概要
Elixir の do Block について。
Elixir では、ブロックを定義する際、 3 通りの記法が有ります。
def name, do: logic
1行で記述する場合に利用する記法。
ブロックのための専用の文法が用意されているわけではなく、
do: logic の部分はただの Keyword list である。
defmodule Hoge do
def hoge(x), do: x <> "hoge"
end
IO.puts Hoge.hoge("MeSsAgE")
- 出力
MeSsAgEhoge
def name, do: (logic)
複数行で記述する場合。ただし、後述のシンタックスシュガーがあるため出番はない?
defmodule Hige do
def hige(x), do: (
y = x <> "hige"
String.upcase(y)
)
end
IO.puts Hige.hige("MeSsAgE")
- 出力
MESSAGEHIGE
def name do next_line_logic end
複数行で記述する場合。 def name, do: (logic)
のシンタックスシュガー
defmodule Hage do
def hage(x) do
y = x <> "hage"
String.downcase(y)
end
end
IO.puts Hage.hage("MeSsAgE")
- 出力
messagehage