Tracks
/
Elixir
Elixir
/
Temario
/
Coincidencia de patrones
Co

Coincidencia de patrones en Elixir

73 ejercicios

Acerca de Coincidencia de patrones

Al escribir funciones en Elixir, podemos hacer uso de un estilo asertivo con la coincidencia de patrones:

def read_file() do
  {:ok, contents} = File.read("hello.txt")
  contents
end
  • La coincidencia de patrones se realiza de forma explícita con el operador de coincidencia, =/2.

    • Las coincidencias tienen éxito cuando la forma de los datos del lado izquierdo del operador coincide con el lado derecho.

    • Cuando las coincidencias tienen éxito, las variables de la izquierda se vinculan a los valores de la derecha.

    • Usar un guion bajo, _, nos permite ignorar los valores en esos lugares.

      {:ok, number, _} = {:ok, 5, [4.5, 6.3]}
      number
      # => 5 is bound to this variable
      
    • El operador pin ^ se puede usar para evitar volver a vincular una variable y, en su lugar, comparar el patrón con su valor existente.

      number = 10
      {:ok, ^number, _} = {:ok, 5, [4.5, 6.3]}
      # => ** (MatchError) no match of right hand side value: {:ok, 5, [4.5, 6.3]}
      
  • Las coincidencias de patrones también pueden darse en la cabecera de una cláusula de función, de modo que solo los argumentos que coincidan con el patrón invocarán la función.

  • Las variables se pueden vincular en una coincidencia de patrones de una cláusula de función.

    defmodule Example do
      def named_function(:a = atom_variable) do
        {atom_variable, 1}
      end
    end
    
    Example.named_function(:a)
    # => {:a, 1}
    # The first function clause matches, so it is invoked
    
    Example.named_function(:b)
    # => ** (FunctionClauseError) no function clause matching in Example.named_function/1
    
Editar en GitHub El enlace se abre en una nueva ventana o pestaña

Aprende Coincidencia de patrones

La práctica está bloqueada

Desbloquea 10 ejercicios más para practicar Coincidencia de patrones