2016-01-02 11 views

risposta

16

\\ viene utilizzato per definire params di default, source

Si può osservare che il comportamento provandolo nella console iex, per esempio:

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

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

Si specifica un valore predefinito.

Argomenti della funzione definiti utilizzando \\ dopo che il nome dell'argomento fornisce un valore predefinito facoltativo. Quindi, se viene chiamato il ciclo /2, il primo argomento sarà il pid restituito da self(). Se viene chiamato il ciclo /3, specificare un pid.

Prendiamo un altro (banale) Esempio:

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 
Problemi correlati