Conceptos básicos de case/in
Coincidencia estructural
Conceptos básicos de case/in es una lección gratuita de Ruby Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Ruby Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Ruby Academy incluye 4 lecciones en total.
Llega la coincidencia de patrones
La expresión case/in de Ruby realiza una coincidencia de patrones estructural: comprueba la forma y el contenido de los datos, no solo la igualdad. Es una mejora potente respecto a case/when.
case 42
in Integer
puts 'it is an integer'
endcase/in frente a case/when
case/when compara mediante === (al estilo de la igualdad). case/in desestructura los valores y puede asociar variables. Use in para hacer coincidir estructuras.
case 'hello'
in String => s
puts "string of length #{s.length}"
endCoincidencia de literales
Una rama in puede coincidir con un valor literal, funcionando como una comprobación precisa de igualdad.
case 3
in 1 then puts 'one'
in 3 then puts 'three'
in _ then puts 'other'
endPatrones de tipo
Indicar una clase hace coincidir cualquier valor de ese tipo, aprovechando === internamente.
def describe(x)
case x
in Integer then 'number'
in String then 'text'
in Array then 'list'
end
end
puts(describe([1, 2]))Asociar variables
Un identificador sin más en un patrón asocia el valor coincidente a una variable nueva que puede usar en la rama.
case [1, 2]
in [a, b]
puts(a + b)
endEl comodín
El guion bajo _ coincide con cualquier cosa sin asociarla. Úselo como comodín general o para ignorar posiciones.
case 99
in 0 then puts 'zero'
in _ then puts 'something else'
endOperador pin
Para comparar con el valor de una variable existente (en lugar de asociar una nueva), fíjelo con ^.
expected = 5
case 5
in ^expected
puts 'matched the pinned value'
endPatrones alternativos
Combine patrones con | para hacer coincidir cualquiera de varias alternativas en una sola rama.
case 'b'
in 'a' | 'b' | 'c'
puts 'in the first three letters'
endAsociar toda la coincidencia
Use pattern => name para comprobar un patrón y asociar simultáneamente el valor coincidente a un nombre.
case 'Ruby'
in String => word
puts(word.upcase)
endNoMatchingPatternError
Si ninguna rama in coincide y no hay un else, Ruby genera NoMatchingPatternError. Añada un else para gestionar el resto de forma segura.
case 10
in 1 then puts 'one'
else
puts 'no specific match'
endCoincidencia en una línea
El operador => realiza una coincidencia con asignación hacia la derecha en una sola línea y genera un error si falla. En cambio, el operador in devuelve true/false.
result = [1, 2] in [Integer, Integer]
puts resultComprobación rápida
¿Qué ocurre si un case/in no tiene ninguna rama coincidente ni un else?
Repaso: fundamentos de case/in
Ha aprendido los fundamentos de la coincidencia estructural:
case/inhace coincidir la forma, no solo la igualdad- Literales, patrones de tipo y el comodín
_ - Asociación de variables y el operador pin
^ - Alternativas con
|ypattern => name - Si no hay coincidencia, se genera
NoMatchingPatternError
case 7
in Integer => n then puts(n * 2)
endPreguntas frecuentes
¿La lección «Conceptos básicos de case/in» es gratis?
Sí — el texto completo de «Conceptos básicos de case/in» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Ruby Academy, actualiza a CoddyKit PRO. El curso de Ruby Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Conceptos básicos de case/in»?
Coincidencia estructural Practicas Ruby Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Ruby Academy?
No se requiere experiencia previa. Ruby Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Conceptos básicos de case/in»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Ruby Academy?
Sí. Cada lección de Ruby Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Conceptos básicos de case/in
- Patrones de arrays y hashes
- Patrones find y guardas
- Casos de uso prácticos