Enumerable
、、などmax_by
のいくつmin_by
かのメソッドはfind
、繰り返されたアイテムの関連する値を評価し、元のアイテムの1つを返します。元の値ではなく、評価されたフォームが必要になることがよくあります。この例では:
max = some_enumerable_object.max_by{|e| some_function(e)}
some_function(max)
max_by
アイテムを選択しますが、それ自体ではなくmax
値が必要です。反復内ですでに評価されているため、実行は計算の無駄に思えます。再計算せずにアクセスする方法はありますか?some_function(max)
max
some_function(max)
some_function(max)