elixir – キーワードリスト

一旦まとめよう

  • 一般的なスクリプト言語での配列は、elixirではタプルを使う
    • タプルは大体4~5個の要素で使うことが多い
    • タプルはインデックスを指定して要素を抜き出すことができる(elem/2)
    • タプルは連続した状態でメモリに格納されるので処理が速い
  • elixirのリストは一般的な配列ではない
    • リストはHeadとTailという2つの要素で構成されている
    • Headは1つの値、Tailはリストで構成されている
    • リスト内の連続した値はこの構造の入れ子になっている
    • 特定のインデックスの値を取得する関数は無い
    • 何に使うのか不明

正直、このリストってのが何のためにあるのかが分かってないが、おそらくelixir流のスクリプトを書いていくうちに、『お、ここはリストを使うべきだな』ってなるともうので、今の時点ではこれ以上深く突っ込まないようにする。

キーワードリスト

実はこのタプルとリストを組み合わせ、PHPでいう連想配列のようなものが作れる。

PHPでこんな配列があったとする。

当然こんな結果になる。

これをelixirで、リストとタプルを使って実現できるらしい。やってみよう。

PHPでいうところのkeyとvalueを1つのタプルで作り、それをリストでいくつも並べるだけ。
keyはアトムで記述すると。なるほど、なんとなく分かった気がする。

そしてこれを実行すると!!

なんということでしょう!!

hut13
©Primitive Technology

匠の力でリスト内のタプルがスッキリ・シャッキリ・ポッキポキ!に変貌を遂げたのです!!

(;´Д`)ハァハァ

と言うよりなんだこの初めてのフォーマット!
というわけで、このフォーマットそのまま打ち込んで見る。

ムホ!

要するにこういう形で最初から指定ができるのか。なるほど。

elixirはカッコを省略できるケースが多いので、おそらくそういうことなんだろうな。

keyとvalueがコロンで区切られてるのはすごくわかりやすい。

サンプルコード

サンプルだと、DBに保存する際にリスト形式で保存していた。

あ、そうか、そういうことか。

これからDBにinsertするデータとか、リストにしておくとわかりやすいか。リストの使い方が1個わかった。

で、カッコを省略してみると、なんとこういう書き方も出来てしまう。

なにこれ!
カッコがないだけで丸裸!丸見え!!

なんだか雨降ること全く考慮してない海外のホテルみたいじゃん。いいね!!

null-stern-hotel-swiss-alps-room-1

なんだかこういう荒々しくもテキトーっぽいんだけど実は研ぎ澄まされてて無駄がないのってステキゾーン。

ちなみにリストの途中で省略表記しても大丈夫らしい。

これは便利かも。

でもこれはエラーになる。

これはなんでかというと、省略表記したあとに省略表記してない値(この場合4)がある場合は無効になるらしい。
最後に連続して省略表記されていればOKなので、

これはOKになる。

おわり

次回は同じくコレクション系で、マップをやろうかな。