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.

    • La coincidencia tiene éxito cuando la forma de los datos del lado izquierdo del operador coincide con el lado derecho.

    • Cuando la coincidencia tiene éxito, las variables del lado izquierdo se vinculan con los valores del lado derecho.

    • 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, hacer coincidir el patrón con su valor actual.

      number = 10
      {:ok, ^number, _} = {:ok, 5, [4.5, 6.3]}
      # => ** (MatchError) no match of right hand side value: {:ok, 5, [4.5, 6.3]}
      
  • La coincidencia de patrones también puede aparecer en el encabezado 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 la 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 ventana o pestaña nueva

Aprende Coincidencia de patrones

La práctica está bloqueada

Desbloquea 10 ejercicios más para practicar Coincidencia de patrones