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