Erlangでモジュールを開いて、モジュール名のプレフィックスを使用せずにその関数を呼び出す方法はありますか?ML構造を開くようなものです!
質問する
726 次
3 に答える
5
いいえ、できません。@johlo と @stemm で指定されたメソッドは、モジュール名を明示的に記述しないようにする回避策にすぎませんが、それだけです。宣言は誤称であり、-import(...)
期待どおりのことをしません。
Erlang の非常に動的なコード処理を考えると、実質的に無意味です。実行時に、コンパイル時と同じ「他の」モジュールがあるという保証はありません。すべてのコード処理、コンパイル/ロード/パージ/リロードなど。、モジュール単位で行われ、モジュール間の依存関係や最適化はありません。
于 2013-01-04T17:03:29.643 に答える
5
使用できます
-import(my_module, [foo/1,bar/2]).
個々の関数 (私の例ではfoo/1
とbar/2
) を別のモジュール ( ) からインポートするには、モジュールのドキュメントmy_module
を参照してください。モジュールからすべての関数をインポートする方法はなく、明示的にリストする必要があります。
また、Erlang では、モジュールからすべての関数をインポートするにはどうすればよいですか?も参照してください。関数をインポートしてはならない理由について説明します。
于 2013-01-04T09:40:38.017 に答える
1
インポートの代わりに、次の定義を使用できます。
-define(SIN(X), math:sin(X)).
my_func(X) -> ?SIN(X).
于 2013-01-04T09:50:51.350 に答える