最近,我想出了這個方法:這種紅寶石方法有類似嗎?
module Enumerable
def transform
yield self
end
end
方法的目的是類似於tap
方法但修改對象的能力。
例如用這種方法我可以在鏈式的陣列改變順序:
array.do_something.transform{ |a| [a[3],a[0],a[1],a[2]] }.do_something_else
代替這樣做的:
a0,a1,a2,a3 = array.do_something
result = [a3, a0, a1, a2].do_something_else
使用這種方法,但是當還有另一個便利。 ..
該方法是非常簡單的,所以我想某個地方應該是已經建立的方法具有相同的目的。
這種紅寶石方法有類似嗎?
是的。對象#點擊返回自我,但從1.9開始提供。 – texasbruce
我的版本返回yield self的結果,即塊的結果不僅僅是我自己。 – megas
更正:屈服於自我,這是你的方法。你沒有提到你也想回歸自我,並且有理由返回這個塊。 – texasbruce