0

分布パラメーターに関連する統計情報を評価する方法を書いています。

def munch(data:, mean:, standard_deviation:)
  # munch the data
end

ただし、standard_deviationこれはかなり長く、他の名前 (たとえば、sigmasd) で知られているため、エンド ユーザーにとってより覚えやすく、便利な場合があります。メソッドにさらにパラメーターを追加してから、代替名が 1 つだけ使用されていることを手動で確認することもできますが、それは面倒で見苦しいものです。sd次のように動作するように、 andsigmaがエイリアスであると言う方法はありstandard_deviationますか?

result1 = munch(data: my_data, mean: 20.0, standard_deviation: 3.0)
result2 = munch(data: my_data, mean: 20.0, sd: 3.0)
p result1 == result2  # => true
4

3 に答える 3

1

あなたの質問に直接答えるには、いいえ、少なくともあなたのコメントが意味していると私が信じている自動的な方法ではありません。

1 つのオプションに複数の名前を定義する組み込みのメカニズムはなく、どのオプションを参照しても Ruby が自動的に同じ値を返すようにします。あなたのコメントにより、これは意図された動作であり、aliasキーワードに似たものであり、古い名前または新しい名前で呼び出すことができると思います。

唯一の実際のオプションは、オプションを手動で解析することです。これは通常、退屈な定型コードを追加しすぎないようにする必要があります。

def blending(**options)
  @mode = options[:mode] || options[:blend_mode] 
  @function = options[:function] || options[:blend_function]
end

alias_option :mode, :blend_modeこれらの名前の 1 つを単純に使用して、どのメソッドが呼び出されたかに関係なく値を取得できるようなものはありません。これを行う方法に関係なく、手動でチェックを行う必要があります。

于 2018-07-13T00:33:42.543 に答える