オプションのパラメーター (params/options ハッシュ内) のデフォルト値をメソッドに指定するために使用される次のコードを記述する、より簡潔で慣用的な方法はありますか?
def initialize(params={})
if params.has_key? :verbose
@verbose = params[:verbose]
else
@verbose = true # this is the default value
end
end
次のように単純化したいと思います。
def initialize(params={})
@verbose = params[:verbose] or true
end
「false」の値を指定したい場合(つまり、この例で引数として渡したい場合)をカバーするために、単に評価するのではなく、条件として実際に使用する必要があることを除いて、これはほとんど機能します。 .has_key? :verbose
params[:verbose]
:verbose => false
この単純な例では、簡単に実行できることがわかりました。
def initialize(verbose=false)
@verbose = verbose
end
しかし、私の実際のコードでは、実際には(いくつかの必須パラメーターに加えて)オプションのパラメーターが多数あり、オプションのパラメーターを params ハッシュに入れたいので、(名前で) いくつかのパラメーターのみを簡単に指定できます。それらをすべて順番にリストする必要はありません(そして、実際には必要のないものをリストする必要がある可能性があります)。