我知道Object#tap
,它接受一個值並返回該值。但有沒有一種方法需要一個塊並返回塊所評估的值?是否有一個ruby方法只返回一個塊的值?
爲了提高我在this answer代碼(這比下面的代碼片段更復雜的),我想改
deck.index("A").tap {|index|
STDERR.puts "Result of indexing for #{"A".inspect} is #{index.inspect}"
}
,已"A"
反覆,到
def my_method(*args)
yield *args
end
deck = ['A', 'B', 'C']
my_method("A") {|value| deck.index(value).tap {|index|
STDERR.puts "Result of indexing for #{value.inspect} is #{index.inspect}"
} }
# Result of indexing for "A" is 0
# => 0
是否有可能把`'A'`附近開始,而不是接近尾聲? – 2010-12-03 00:18:58