簡単Elixirシリーズ
~ シンタクッスシュガー ~
この記事は「Elixir Advent Calendar 2022」16日目の記事です
東京にいるけどfukuokaexのYOSUKEです。
簡単 Elixirシリーズでは小ネタをサクッと書いていこう。というコンセプトで作っていきます。
今回は、オプションの構文と書かれている公式ドキュメントについてサクッと見ていきます。
ちなみに、Elixirの学習を始めた頃、このドキュメントにたどり着く前にめっちゃハマり、
@zacky1972 さんに教えてもらい、シンタックスシュガーと言うんだよ。と教わったことを思い出しました。
まずは、()
はオプションで省略可能なもの
iex(40)> length([1,2,3])
3
iex(41)> length [1,2,3]
3
iex(42)> length([1,2,3]) === length [1,2,3]
true
なので、()
を外しまくってこんな感じで書くこともできます。
iex()> Enum.map [1,2,3], & &1*2
[2, 4, 6]
次に、 do
- end
は キーワードリスト である。
に関しては、以下のようにも書けます。
iex()> if true do
...()> :hello
...()> else
...()> :world
...()> end
:hello
iex()> if true, do: :hello, else: :world
:hello
キーワードリストなので、 do: や else: はアトムです。なので、さらに詳しくすると以下のように書いても動きます。
iex()> if true, [{:do, :hello}, {:else, :world}]
:hello
Phoenix フレームワークの中ではこのシンタックスシュガーが至る所で絶妙に利用されているので初めてみると混乱するかも知れませんが、シンタックスシュガーを利用して 記述をコンパクトにわかりやすくしています。