2016-01-02 11 views

Odpowiedz

16

\\ służy do definiowania domyślnych params, source

Można zaobserwować, że zachowanie próbując go w konsoli iex, na przykład:

defmodule Foo do 
    def bar(x \\ 1, y) do 
    x * y 
    end 
end 

Foo.bar(2,3) # => 6 
Foo.bar(3) # => 3 
22

To określa wartość domyślną.

Argumenty funkcji zdefiniowane za pomocą \\ po tym, jak nazwa argumentu stanowi opcjonalną wartość domyślną. Więc jeśli zostanie wywołana pętla/2, pierwszym argumentem będzie pid zwrócony z self(). Jeśli zostanie wywołana pętla/3, należy określić pid.

Weźmy inny (trywialne) Przykład:

math.ex

defmodule Math do 
    def add(a \\ 2, b) do 
    a + b 
    end 
end 

iex (1)> c("math.ex") 

iex (2)> Math.add(1, 8) # add/2, because you are matching 1 to `a`. 
9 

iex (3)> Math.add(8) # add/1, because `a` is by default matched to 2. 
10