Rubyでは、メソッドにパラメータを渡すのではなく、パラメータのハッシュを受け取るメソッドを見るのが一般的です。ハッシュ対複数のパラメータ?
私の質問は - あなたのメソッドにはいつパラメータを使用しますか?そしていつパラメータハッシュを使用しますか?
メソッドに複数のパラメータがある場合は、パラメータハッシュを使用することをお勧めしますか?
Rubyでは、メソッドにパラメータを渡すのではなく、パラメータのハッシュを受け取るメソッドを見るのが一般的です。ハッシュ対複数のパラメータ?
私の質問は - あなたのメソッドにはいつパラメータを使用しますか?そしていつパラメータハッシュを使用しますか?
メソッドに複数のパラメータがある場合は、パラメータハッシュを使用することをお勧めしますか?
子クラスのメソッドをオーバーライドする場合は、親メソッドのパラメータを呼び出すときにハッシュパラメータを使用する必要があります。
意味的に一緒に属しているオプションのセットを表すときはいつでも、パラメータハッシュを使用します。関数に直接(しばしば必要とされる)引数である他のパラメータは、私はひとつずつ渡します。
多くのオプションのパラメータがある場合、または任意のパラメータを受け入れる場合は、多くの方法で見られるように、ハッシュを使用することができます。別のノートで
、これはルビーではなく、すべての言語に関連しているのみならず:流動的なAPIで
、単一のパラメータオブジェクトとして機能するために、いくつかのまたはすべてのパラメータを宣言すると便利な場合があり(Rubyでは、これらはハッシュ、C構造体などである可能性があります)、承認された引数のセットが将来のバージョンで変更される場合、APIの安定性を維持します。しかし、明白な欠点は、読みやすさが大幅に低下していることです。本当に必要な場合を除き、私はこの "パターン"を使用しません。
3つ以上の引数がある場合は、ハッシュを使うことを考え始めるべきです。 これはクリーンコードで明確に説明された良い方法ですlink text
+1 - パラメータハッシュでは何も必要ありません。省略可能なパラメータは、デフォルト値で名前を付けることができますが、それらをハッシュで渡す傾向があり、必要に応じてメソッド本体にデフォルトを設定します。 –