43
¿Alguien puede dar un ejemplo sobre cómo usar la caja del interruptor en Ruby para variable?Ruby on Rails Switch
¿Alguien puede dar un ejemplo sobre cómo usar la caja del interruptor en Ruby para variable?Ruby on Rails Switch
Supongo que se refiere a casos/cuándo.
case a_variable # a_variable is the variable we want to compare
when 1 #compare to 1
puts "it was 1"
when 2 #compare to 2
puts "it was 2"
else
puts "it was something else"
end
o
puts case a_variable
when 1
"it was 1"
when 2
"it was 2"
else
"it was something else"
end
EDITAR
Algo que tal vez no todo el mundo conoce, pero lo que puede ser muy útil es que se puede utilizar expresiones regulares en una declaración de caso.
foo = "1Aheppsdf"
what = case foo
when /^[0-9]/
"Begins with a number"
when /^[a-zA-Z]/
"Begins with a letter"
else
"Begins with something else"
end
puts "String: #{what}"
Muchas gracias. ¿Puedo reemplazar una_variable con params [: id] verdad? – glarkou
Absolutamente, solo asegúrese de que está comparando variables del mismo tipo, por ejemplo "1" no es igual a 1. Sin embargo, "1" .to_i es igual a 1 (to_i convierte una cadena en un entero). Si desea comparar params [: id] con un entero, debe hacer "case params [: id] .to_i". Me parece un poco extraño probar params [: id] con "case", ¿estás seguro de lo que estás haciendo? –
Gracias amigo. Eso fue realmente útil. ¡Creo que ese fue el problema! – glarkou