unless operator ruby operators

operator - ruby ||=



operador de ruby "= ~" (3)

Esta pregunta ya tiene una respuesta aquí:

En ruby, leí algunos de los operadores, pero no pude encontrar =~ . ¿Qué es =~ para, o qué significa? El programa que vi tiene

regexs = (//d+/) a = somestring if a =~ regexs

Creo que estaba comparando si somestring igual a dígitos pero, ¿hay algún otro uso, y cuál es la definición correcta del operador =~ ?


= ~ es un operador para hacer coincidir expresiones regulares, que devolverá el índice del inicio de la partida (o nulo si no hay coincidencia).

Vea here para la documentación.


El operador =~ coincidir la expresión regular con una cadena, y devuelve el desplazamiento de la coincidencia de la cadena si se encuentra, de lo contrario nil.

/mi/ =~ "hi mike" # => 3 "hi mike" =~ /mi/ # => 3 "mike" =~ /ruby/ # => nil

Puede colocar la cadena / expresión regular a cada lado del operador como puede ver arriba.


Este operador compara cadenas con expresiones regulares.

s = ''how now brown cow'' s =~ /cow/ # => 14 s =~ /now/ # => 4 s =~ /cat/ # => nil

Si el String coincide con la expresión, el operador devuelve el desplazamiento, y si no lo hace, devuelve nil. Es un poco más complicado que eso: vea la documentación aquí; es un método en la clase String.