私は、異なるアリティを持つ頭を持つ関数を持つモジュールを持っているとしましょう。利用可能なすべてのアーリー(明示されていない)のために別のモジュールでこの関数をインポートする方法はありますか?既存のアリティの関数をインポートできますか?
defmodule Math do
def plus(a, b) do
end
def plus(a, b, c) do
end
def plus(a, b, c, d) do
end
end
defmodule AdditiveCalculator do
# Explicit import
import Math, only: [plus: 2, plus: 3, plus: 4]
# What i'm hoping for
import Math, only: [plus: :all]
end
Erlang/Elixirには可変量の引数はありません。長い値リストを要約する必要がある場合は、値リストを関数に渡します。これにより、「すべてインポート」の必要性が排除されます。 – tkowal
もちろん、すべての関数が必要な場合は 'import Math'を使い、' only: 'オプションは使わないでください。そうすれば、モジュール内のすべての機能が提供されますが、これはあなたが求めているとは思えませんが、機能するはずです。 – CoderDennis