7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

.exファイルも作るところから! Elixirでの"Hello, World!"-その2

Last updated at Posted at 2022-10-22

こんにちは!
プログラミング未経験文系出身、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

で、テキストエディタが開きます。

その中に、

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が開きます。

その中に、

hello.ex
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周年です:laughing::sparkles::sparkles:

We Are The Alchemists, my friends!:bouquet:1
Elixirコミュニティは本当に優しくて温かい人たちばかり!
私が挫折せずにいられるのもこの恵まれた環境のおかげです。

まずは気軽に話しかけてみてください。2

  1. @torifukukaiouさんのAwesomeな名言をお借りしました。Elixirコミュニティを一言で表すと、これに尽きます。

  2. @kn339264さんの素敵なスライドをお借りしました。Elixirコミュニティはいろんな形で活動中!

7
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?