以下のロジックが必要です。配列にvalue
が含まれている場合はそれを返し、それ以外の場合はデフォルト値を返します。これまでのところ、私はこれがdelete
を用いることによって達成することができることがわかりました。配列フェッチまたはデフォルト関数
array.delete(value) || default_value
しかし、明らかに、それは、配列を変更します。 fetch
のような同じ機能があり、インデックスの代わりに要素をとるデフォルトがありますか?
PS。私はこれがarray.include?(value) ? value : default_value
と書かれていることを知っています。問題はちょうどクリーナーコードのためです。
私はあなたがしなければならないことを意味これは、このための任意のシンプルなコード(後者を)見つけることができません怖いですその複雑さを隠す独自の 'fetch'を実装してください:-) 代替(デフォルトが' 6'の場合): 'ary.find(lambda {6}){| x | x == 6} ' – karatedog