chcę zrobić coś podobnego do tego:Ruby: Czy parametry funkcji lambda mogą mieć wartości domyślne?
def creator()
return lambda { |arg1, arg2 = nil|
puts arg1
if(arg2 != nil)
puts arg2
end
}
end
test = creator()
test('lol')
test('lol', 'rofl')
Dostaję kilka błędów składni:
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
to możliwe w Ruby? Chcę ustawić domyślną wartość dla parametru do funkcji lambda
Ostrożnie, minięcie do zera nie uruchomi wartości domyślnej: – mmell
W Rubim 1.9.3 dostaję błąd składni podczas umieszczania spacji między pchniętym lamba a nawiasem 'f -> (x = 123) {...} '. Działa dobrze bez spacji 'f -> (x = 123) {...}'. –
dla 'l = -> (k, v, r = zero) {}' Podnieście ArgumentError gdy '{a:" A "} każdy & l' ale nie błąd, gdy' {a: "A"} each {| k, v | l.call (k, v)} ' –