0Pricing
Ruby Academy · Lección

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'
end

case/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}"
end

Coincidencia 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'
end

Patrones 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)
end

El 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'
end

Operador 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'
end

Patrones 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'
end

Asociar 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)
end

NoMatchingPatternError

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'
end

Coincidencia 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 result

Comprobació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/in hace 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 | y pattern => name
  • Si no hay coincidencia, se genera NoMatchingPatternError
case 7
in Integer => n then puts(n * 2)
end

Preguntas 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

  1. Conceptos básicos de case/in
  2. Patrones de arrays y hashes
  3. Patrones find y guardas
  4. Casos de uso prácticos
← Volver a Ruby Academy