Elixir - Operadores varios
Aparte de los operadores anteriores, Elixir también proporciona una gama de otros operadores que lo convierten en un lenguaje bastante poderoso.
Operador de concatenación
Elixir proporciona un operador de concatenación de cadenas, '<>'. Esto se usa para concatenar 2 cadenas. Por ejemplo,
IO.puts("Hello"<>" "<>"world")
El comando anterior genera el siguiente resultado:
Hello World
Partido
El operador del partido, '='hace uso de la función de coincidencia de patrones del lenguaje. Discutiremos este operador en detalle en un capítulo posterior sobre Coincidencia de patrones.
Tenga en cuenta que = no es solo un operador de asignación. Cuando tenemos el valor de la izquierda como variable y el valor de la derecha como literal u otra variable, el valor de la derecha está vinculado a la variable, es decir, se realiza la asignación. Pero si tenemos una variable a la derecha y un literal a la izquierda, ocurre la coincidencia de patrones. Lo mismo ocurre cuando ambos valores son literales.
Alfiler
El operador de alfiler, '^'es un operador unario que se usa anteponiendo un nombre de variable. Se asegura de que a la variable cuando se utiliza con el operador de coincidencia no se le asigne un valor, sino que coincida con ese valor. Por ejemplo,
a = 12 #assignment
a = 13 #assignment
^a = 13 #Pattern matching
Tubo
El operador de tubería, '|>' funciona como el operador de tubería en los shells de Unix. Nos permite canalizar la salida de una función a otra. Por ejemplo, si necesitamos canalizar el resultado de la suma enIO.puts, usaremos -
(4+3) |> IO.puts
Cuando se ejecuta el programa anterior, produce el siguiente resultado:
7
Esto reconocerá que hemos canalizado el resultado de la suma en la función IO.puts. Esto imprimirá 7 en su consola.
Coincidencia de cadenas
El operador de coincidencia de cadenas, '= ~', toma una cadena a la izquierda y una cadena o una expresión regular a la derecha. Si la cadena de la derecha es una subcadena de la izquierda, se devuelve verdadero. Si la expresión regular de la derecha coincide con la cadena de la izquierda, se devuelve verdadero. De lo contrario, se devuelve falso. Por ejemplo,
IO.puts("tutorialspoint" =~ "poi")
IO.puts("tutorialspoint" =~ ~r/[a-z]*/)
IO.puts("tutorialspoint" =~ ~r/[0-9]*/)
Cuando se ejecuta el programa anterior, produce el siguiente resultado:
true
true
true
Tenga en cuenta que las expresiones regulares comienzan con un '~r' prefijo en Elixir.
Punto de código
Es un operador unario, '?' que devuelve el punto de código UTF-8 del carácter inmediatamente a su derecha. Solo puede tomar un carácter y acepta secuencias de escape. Por ejemplo,
IO.puts(?a)
IO.puts(?\s)
Cuando se ejecuta el programa anterior, produce el siguiente resultado:
97
32
Capturar
El operador de captura, '&' se usa al definir funciones anónimas. Discutiremos esto en detalle en el capítulo de funciones.
Ternario
Elixir no tiene un operador ternario. Podemos lograr la misma funcionalidad usando la instrucción if else−
a = if true, do: "True!", else: "False!"
En
Este operador comprueba si el elemento de la izquierda existe en la estructura enumerable de la derecha. Por ejemplo, podemos buscar un átomo en una lista, tupla, etc. de átomos usando este operador:
:yes in [:true, :false, :yes]
La declaración anterior devuelve verdadera como :yes existe en la lista.