こんにちは!
プログラミング未経験文系出身、Elixirの国に迷い込んだ?!見習いアルケミストのaliceと申します。
今回はElixirでの"Hello, World!"について、そういえば.ex/.exsファイル作るところからは誰も書いていない?!と思い、備忘録としてまとめておきます。
第1回目では.exsファイルで.exsファイルで"Hello, World!"を作りました。
→第1回目はこちらから
今回は.exファイルで"Hello, World!"を作っていきたいと思います。
実行環境
- ・Windows 11 Home(バージョン 21H2, OS ビルド 22000.1098)
- ・Ubuntu v18.04 ※WSL2環境下
- ・Elixir v1.13.4 (compiled with Erlang/OTP 25) ※WSL2環境下
パターン1 テキストエディタから.exファイルの作成
※以下コマンドはエディタとOSにより異なります。
コマンドプロンプトを開く
→ファイルを作成したいディレクトリまでcdコマンドで移動
$ nano hello.ex
で、テキストエディタが開きます。
その中に、
defmodule Hello do
def hello() do
IO.puts("Hello,World!")
end
end
と書いて保存し(Ctrl+S)、閉じます。(CTRL+X)
コマンドプロンプトに戻り、hello.exのあるディレクトリで、コンパイル(elixirc <ファイル名>.ex)します。
$ elixirc hello.ex #このコマンドでコンパイルする
コンパイルが完了しても特にコマンドプロンプト上で何か表示されるわけではありませんが、
実行するためのbeamファイル(Elixir.<モジュール名>.beam という名前のファイル)というものがカレントディレクトリに生成されています。
これが生成されていることを確認します。
$ ls -l #このコマンドでファイル一覧を表示する
-rwxrwxrwx 1 alice alice 1400 Oct 22 21:20 Elixir.Hello.beam #Elixir.Hello.beamが生成されていることが確認できる
beamファイルが生成されていることを確認できたら、いよいよ実行します。(elixir -e <モジュール名>.<関数名>)
$ elixir -e Hello.hello #このコマンドでbeamファイルのhello関数を実行する
Hello,World! #Hello,World!が返ってくる
パターン2 VSCodeから.exファイルの作成
コマンドプロンプトを開く
→ファイルを作成したいディレクトリまでcdコマンドで移動
$ code hello.exs
で、VSCodeが開きます。
その中に、
defmodule Hello do
def hello() do
IO.puts("Hello,World!")
end
end
と書いて保存し(Ctrl+S)、閉じます。(Alt+F4)
コマンドプロンプトに戻り、hello.exのあるディレクトリで、コンパイル(elixirc <ファイル名>.ex)します。
$ elixirc hello.ex #このコマンドでコンパイルする
コンパイルが完了しても特にコマンドプロンプト上で何か表示されるわけではありませんが、
実行するためのbeamファイル(Elixir.<モジュール名>.beam という名前のファイル)というものがカレントディレクトリに生成されています。
これが生成されていることを確認します。
$ ls -l #このコマンドでファイル一覧を表示する
-rwxrwxrwx 1 alice alice 1400 Oct 22 21:20 Elixir.Hello.beam #Elixir.Hello.beamが生成されていることが確認できる
beamファイルが生成されていることを確認できたら、いよいよ実行します。(elixir -e <モジュール名>.<関数名>)
$ elixir -e Hello.hello #このコマンドでbeamファイルのhello関数を実行する
Hello,World! #Hello,World!が返ってくる
~Elixirの国のご案内~
※Elixirって何ぞや?と思ったらこちらもどぞ。未来がぎゅっと詰まった、Elixirは今年で生まれて10周年です
We Are The Alchemists, my friends!1
Elixirコミュニティは本当に優しくて温かい人たちばかり!
私が挫折せずにいられるのもこの恵まれた環境のおかげです。
まずは気軽に話しかけてみてください。2
-
@torifukukaiouさんのAwesomeな名言をお借りしました。Elixirコミュニティを一言で表すと、これに尽きます。 ↩