This question behandelt optionale Argumente, die an einen Ruby-Block übergeben werden. Ich frage mich, ob es auch möglich ist, Argumente mit Standardwerten zu definieren, und wie die Syntax dafür aussehen würde.Ist es möglich, einen Block mit Standardargumenten in Ruby zu definieren?
Auf den ersten Blick scheint es, dass die Antwort "nein":
def call_it &block
block.call
end
call_it do |x = "foo"|
p "Called the block with value #{x}"
end
... Ergebnisse in:
my_test.rb:5: syntax error, unexpected '=', expecting '|'
call_it do |x = "foo"|
^
my_test.rb:6: syntax error, unexpected tSTRING_BEG, expecting kDO or '{' or '('
p "Called the block with value #{x}"
^
my_test.rb:7: syntax error, unexpected kEND, expecting $end
end
^
... und ich bin auf 1.8.7, was erklärt, warum es für mich nicht funktioniert. : - \ –