エリクシール語でランダムアクセスの「const配列」を作成する標準的な方法は何ですか? elem/2
/element/2
を介してアクセスがOであると思われるようエリクサーで "const array"に相当する方法は何ですか?
アーラン背景から(例えばCRCの計算に使用されるもの、又はAES Sボックスの場合)I(1)、「アレイ」自体はタプルなければならないこと、想定します(機能BIF_RETTYPE element_2(BIF_ALIST_2)
、erts/emulator/beam/bif.c
)。
しかし、Erlang/Elixirにはグローバルがないため、ストレージのスコープはどうですか?私の鼻には@module_attribute
がありますが、@attributesがどこにいつ展開されるのかはよく分かりません。
既知のErlangの問題があります。モジュールに-define(LARGE_LIST,[...])
があり、関数に?LARGE_LIST
を使用しています。値は各関数呼び出しで再構築されます。解決策は、アプリケーション開始時に一度構築し、それをパラメータの1つとして必要とする関数に渡すことでした。
エリクサーの@module_attribute
はこの問題を解決しているのですか、それとも気まぐれなマクロ展開として扱われていますか?私はmodule attributesの公式ドキュメントを読んだが、私はまだ混乱している。