Rubyで単一のアイテムを 'マップ'する方法を探しています。単一オブジェクトのRubyマップ()
この関数を呼び出してブロックに渡すと、オブジェクトがブロックに渡され、ブロックの結果が呼び出し元に返されます。マップとは異なり、単一の要素に対するものです。
動機づけは、他のものを構築するために使用されたオブジェクトを生成することがあるということです。元のオブジェクトはもはや必要なくなりました。変換をブロックに入れて一時的なものを削除するだけでいいですね。
たとえば、月と年の組み合わせを表す整数を作成したいとします。 (
month_number = Date.today.some_function { |d| d.year * 100 + d.month }
しかし、私は「some_function」であるかわからない:私は本当にそれのように私のような何かができると思います場合
day = Date.today
month_number = day.year * 100 + day.month
:今日の日付の場合、コードは次のようになりますまたはそれが存在する場合でも)。
これ以上のRubyの処理方法があれば、私はすべて耳にします。私はモンキーパッチクラスを知っていますが、もう少し過渡的なケースを扱うつもりです。
[ 'オブジェクト#1 tap'](http://ruby-doc.org/core-1.9.3/Object.html#method-i-tap)がとても近いですが、それはdoesnのブロックの値を返す... – maerics
何かのような? m = lambda {| d | d.year * 100 + d.month} .call(Date.today) – Kaeros
@jondavidjohnの答えをご覧ください。組み込みのオーバーヘッドはありません。 –