ユーザーが単一のオブジェクトまたは配列のいずれかになるオプションをメソッドに渡せるようにしたいと思います。`opts[:variable_length_opt] が定義されていると仮定すると、以下のコードが機能します。
def initialize(opts={})
@ivar = *opts[:variable_length_opt]
end
ただし、オプションが設定されていない場合は、デフォルトを設定できるようにしたいと考えています。しかし、このコードは機能しません:
def initialize(opts={})
@ivar = (opts[:variable_length_opt] ? *opts[:variable_length_opt] : default_value)
end
エラーがスローされunexpected tSTAR
ます。私が求めていることを達成するための他のより詳細な方法があることは理解していますが、他に短い代替手段があるかどうか疑問に思っています。また、スプラットの限界は何ですか?ここで利用できない正当な理由は思いつきません。