quiero hacer algo similar a esto:Ruby: ¿Pueden los parámetros de la función lambda tener valores predeterminados?
def creator()
return lambda { |arg1, arg2 = nil|
puts arg1
if(arg2 != nil)
puts arg2
end
}
end
test = creator()
test('lol')
test('lol', 'rofl')
me sale un par de errores de sintaxis:
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
es esto posible en Ruby? Quiero establecer un valor predeterminado para un parámetro a una función lambda
Cuidado, pasar nil no activará el valor predeterminado: – mmell
En Ruby 1.9.3 obtengo un error de sintaxis al poner un espacio entre el stamba lamba y el paréntesis 'f -> (x = 123) {...} '. Funciona bien sin espacio 'f -> (x = 123) {...}'. –
para 'l = -> (k, v, r = nil) {}' levantar un ArgumentError cuando '{a:" A "}. Each & l' pero no error cuando' {a: "A"} each {| k, v | l.call (k, v)} ' –