Elixir 練習問題 StringsAndBinaries-3

ここのところ Ubuntu ばかりやっていたので、Elixir は久しぶり。

今日の練習問題は、['cat' | 'dog'] という式が、なぜ ['cat', 100, 111, 103] になるのかという問題。まずは実際に確かめてみよう。

^o^ > iex
Eshell V8.0  (abort with ^G)
Interactive Elixir (1.3.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> ['cat' | 'dog']
['cat', 100, 111, 103]

まあ、答えは簡単だ。シングルクォートで囲まれた 'dog' は実はただの整数のリストで、たまたまその整数すべてが文字コードとして解釈できるから 'dog' になっているにすぎない。

iex(2)> [100, 111, 103]
'dog'

ところが、このリストの先頭に 'cat' を追加してしまうと、すべてが文字コードとして解釈できる整数ではなくなってしまう。もう少し正確に言うと、リストの最初の要素がリスト、残りが整数になってしまっている。だから、後ろの3要素は文字ではなく文字コードで表示されている。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です