Coincidencia de patrones

Los bloques is e in son un atajo rápido para condicionales.

Bloque is#

if-is es equivalente a una comparación ==. Verifica si el valor es igual a alguna de las opciones proporcionadas.

x = 4
if x
  is 1 2 3 4
    print x  # Imprime 4
  else
    print "No coincide"

Bloque in#

if-in aplica una operación de pertenencia. Su comportamiento varía según el tipo de dato:

Tipo de datoComportamiento
ArraysVerifica si el valor pertenece al conjunto de elementos del array
StringsVerifica si es una subcadena del string
RangesVerifica si está dentro del rango numérico

Ranges#

x = 5
if x
  in 0..10
    print x  # Imprime 5 porque está dentro del rango
  else
    print "Fuera de rango"

Arrays#

x = 3
if x
  in [1 2 3 4 5]
    print x  # Imprime 3 porque pertenece al array
  else
    print "No está en el array"

Strings#

x = "mundo"
if x
  in "Hola mundo"
    print x  # Imprime "mundo" porque es parte del string
  else
    print "No es parte del string"

Mezcla de bloques#

Puedes combinar múltiples bloques is e in en el mismo bloque if:

x = 5
if x
  is 1 2 3
    print "Es 1, 2 o 3"
  in 0..10
    print "Está en el rango 0-10"
  in [20 30 40]
    print "Es 20, 30 o 40"
  else
    print "No coincide con ninguna opción"

Validación de valores#

Útil para verificar si un valor es válido, evitando casos como none, infinito o cadenas vacías:

x = ""
if x
  is -infi infi nan none ""
     panic "El valor es inválido"
  else
     print x * 2