mcommit's message

ソフトウェア開発の仕事をしているsimotinといいます。記事の内容でご質問やご意見がありましたらお気軽にコメントしてください\^o^/

Elixir入門 ~5日目 ファイルの読み書き~

今日は帰りが遅くなったのであまり時間が取れない。

ファイルの読みこみだけ試してみた。

CSV形式のファイルを読んでみる。

sample.csv とする。

aaa,1
bbb,2
ccc,3

ファイルアクセスはFileモジュールを使うらしい。
読み込みはreadかopen

iex(1)> File.read("sample.csv")
{:ok, "aaa, 1\nbbb, 2\nccc, 3\n"}

結果はタプルで返ってくる。

最初の

:ok

はアトム型といってrubyのシンボル相当らしい。

タプルで結果が返ってくるのは違和感があるが、読み込み結果を何らかの形で返す必要があるのでこういう仕様なんだろう。

存在しないファイルを指定すると

{:error, :enoent}

という結果が返ってくる。

カンマ区切りの分割にはStringのsplit関数が使えるらしい。
結果はリストになる。

iex(1)> String.split("aaa","bbb","ccc", ",")
["aaa", "bbb", "ccc"]

複数行・複数カラムの扱いはEnumモジュールのeachとかを使うとrubyみたいな感じでかけるらしい。

今日は疲れてるので早く寝よう、また明日だ。