3

Elixirでゲームエンジンを書いています。(はい、本質的にそれに適した言語ではないことはわかっています。重要なのは、非定型言語の使用が結果の構造にどのように影響するかを調べることです。)

そのため、ゲームの開始時に実行されるスーパーバイザーがいくつかありますが、正確に何を監督する必要があるかは、ゲームによって異なります。私が考えていたのは、ユーザーが必要な子、引数、およびオプションconfig.exsをタプルのリストとしてファイルにリストすることでした。その後、スーパーバイザー自体がアプリケーション環境からそれらのタプルを単純に取り出し、それらの内容を引数として使用してworker\2(またはworker\3、必要に応じて)。

しかし、Python のタプルアンパックに相当する Elixir は見つかりません。この特定のケースでは、単純な関数を使用して自分で行うことができます。

def unpack_worker({module, args}) do
  worker(module, args)
end

def unpack_worker({module, args, opts}) do
  worker(module, args, opts)
end

しかし、それはせいぜい不器用に感じられ、この種の構成可能性が必要になる可能性のある関数ごとに再度記述する必要があります。

4

3 に答える 3