Ich weiß über Object#tap
, die einen Wert nimmt und diesen Wert zurückgibt. Aber gibt es eine Methode, die einen Block nimmt und den vom Block ausgewerteten Wert zurückgibt?Gibt es eine Ruby-Methode, die nur den Wert eines Blocks zurückgibt?
Zu meinen Code in this answer (die komplizierter als das Snippet unten) zu verbessern, würde Ich mag
deck.index("A").tap {|index|
STDERR.puts "Result of indexing for #{"A".inspect} is #{index.inspect}"
}
, ändern, die "A"
, in
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
Ist es möglich, setzt ' 'A'' in der Nähe von Anfang an, anstatt am Ende? –