読者です 読者をやめる 読者になる 読者になる

万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

Elixirのformat

stringのフォーマットがデフォルトではなくErlangの使うのでめんどい。

qiita.com

なのでErlangのはこれを参考にした。

文字と文字列 / Erlang World

Erlangでいうことの

io:format("hello ~p~n",[erlang]).

これは、

:io.format("hello ~p", ['erlang'])

iexでの結果

hello "erlang":ok

のように最後の..を外して、ioの前に:をつけて、:の代わりに.[]があれば''つければいいと脳内変換してつかった。

なぜかダブルクォートがつくが、

|シーケンス| 役割| |~n| 改行| |~p| 整形して出力を行なう| |~s| 文字列の出力を行なう| |~w| データをそのまま出力する|

とのことなので、

:io.format("hello ~s", ['erlang'])

とsにすれば解決した。

結果を受け取るために

res = :io.format("hello ~s", ['erlang'])

としたが、resを出力したが・・・

> IO.puts(res)
ok
:ok

はあ??

Erlang - io:format 's result / (formatting with io_lib:format/2) - Stack Overflow スタックオーバーフローさん登場! ioの代わりにio_libを代わりに使えとのこと。

res = :io_lib.format("hello ~s", ['erlang'])

にしたら

> IO.puts(res)
hello erlang
:ok

オッケーーーー