[Elixir]compile timeに決定されるモジュールの定数

Elixirでは以下のように @neko と定義することで、このモジュール内で共通して使える要素を定義できます。最近使い方を誤ってしまったのですが、この値はコンパイル時に決定されるので、それ以降に読まれる値を設定することはできません。

defmodule Sample do
  @neko "value"
end

In other words, the value is read at compilation time and not at runtime. As we are going to see, this makes attributes useful to be used as storage during module compilation.

http://elixir-lang.org/getting-started/module-attributes.html

例えば、

defmodule Sample do
  @neko Application.get_env :sample, :value, "default"
end

というような用途では、必ず default が代入されます。

つい忘れていてつまづいたので、メモ…

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s