Ich will das etwas Ähnliches tun:Ruby: Können Lambda-Funktionsparameter Standardwerte haben?
def creator()
return lambda { |arg1, arg2 = nil|
puts arg1
if(arg2 != nil)
puts arg2
end
}
end
test = creator()
test('lol')
test('lol', 'rofl')
ich einige Syntaxfehler erhalten:
test.rb:2: syntax error
return lambda { |arg1, arg2 = nil|
^
test.rb:3: syntax error
test.rb:7: syntax error
test.rb:14: syntax error
ist das möglich in Ruby? Ich möchte für einen Parameter auf eine Lambda-Funktion einen Standardwert gesetzt
Vorsicht, Passing Nil wird nicht den Standard auslösen: – mmell
In Ruby 1.9.3 bekomme ich einen Syntaxfehler, wenn Sie ein Leerzeichen zwischen der Stabby Lamba und der Klammer setzen 'f-> (x = 123) {...} '. Es funktioniert ohne Leerzeichen 'f -> (x = 123) {...}'. –
für 'l = -> (k, v, r = nil) {}' erhebe einen ArgumentError wenn '{a:" A "}. Jedes & l' aber kein Fehler wenn' {a: "A"} each {| k, v | l.call (k, v)} ' –