Треки
/
Elixir
Elixir
/
Салабус
/
Зіставлення зі зразком
Зі

Зіставлення зі зразком у Elixir

73 вправи

Про концепцію Зіставлення зі зразком

Пишучи функції Elixir, ми можемо скористатися стверджувальним стилем разом із зіставленням зі зразком:

def read_file() do
  {:ok, contents} = File.read("hello.txt")
  contents
end
  • Зіставлення зі зразком виконується явно за допомогою оператора зіставлення =/2.

    • Зіставлення вдається, коли форма даних ліворуч від оператора збігається з правою частиною.

    • Коли зіставлення вдається, змінні ліворуч привʼязуються до значень праворуч.

    • Використання символа підкреслення, _, дозволяє нам ігнорувати значення на цих місцях.

      {:ok, number, _} = {:ok, 5, [4.5, 6.3]}
      number
      # => 5 is bound to this variable
      
    • Оператор закріплення ^ можна використати, щоб запобігти повторному привʼязуванню змінної й натомість зіставити її з наявним значенням.

      number = 10
      {:ok, ^number, _} = {:ok, 5, [4.5, 6.3]}
      # => ** (MatchError) no match of right hand side value: {:ok, 5, [4.5, 6.3]}
      
  • Зіставлення зі зразком може також відбуватися в заголовку виразу функції, тож функцію буде викликано лише для тих аргументів, що відповідають зразку.

  • Змінні можна привʼязувати в зіставленні зі зразком у виразі функції.

    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
    
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці

Вивчити концепцію Зіставлення зі зразком

Практика заблокована

Розблокуйте ще 10 вправ, щоб практикувати концепцію Зіставлення зі зразком