Kurzusok
/
Elixir
Elixir
/
Tanterv
/
Mintailesztés
Mi

Mintailesztés ebben a kurzusban: Elixir

73 feladat

A(z) Mintailesztés fogalomról

Amikor Elixir-függvényeket írunk, használhatjuk az asszertív stílust a mintaillesztéssel együtt:

def read_file() do
  {:ok, contents} = File.read("hello.txt")
  contents
end
  • A mintaillesztést kifejezetten az illesztő operátor, a =/2 használatával végezzük.

    • Az illesztés akkor sikeres, ha az operátor bal oldalán álló adat alakja megegyezik a jobb oldaléval.

    • Ha az illesztés sikeres, a bal oldali változók a jobb oldali értékekhez kötődnek.

    • Az alulvonás, _, segítségével figyelmen kívül hagyhatjuk az ilyen helyeken lévő értékeket.

      {:ok, number, _} = {:ok, 5, [4.5, 6.3]}
      number
      # => 5 is bound to this variable
      
    • A pin operátor ^ segítségével megakadályozhatjuk, hogy egy változó újra kötődjön, és helyette a meglévő értékére illeszthetünk mintát.

      number = 10
      {:ok, ^number, _} = {:ok, 5, [4.5, 6.3]}
      # => ** (MatchError) no match of right hand side value: {:ok, 5, [4.5, 6.3]}
      
  • A mintaillesztés függvényklózok fejlécében is előfordulhat, így csak a mintának megfelelő argumentumok hívják meg a függvényt.

  • A függvényklóz mintaillesztésében változókat is köthetünk.

    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
    
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg

Tanuld meg a(z) Mintailesztés fogalmat

A gyakorlás zárolva

Oldj fel még 10 feladatot, hogy gyakorolhasd a(z) Mintailesztés fogalmat