2016-01-02 8 views

答えて

16

\\は、あなたは、例えば、iexコンソールでそれを試みることによってその行動を観察することができますsource

、デフォルトのparamsを定義するために使用されます。

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

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

それはがデフォルト値を指定します。

引数名の後に\\を使用して定義された関数引数は、省略可能なデフォルトを提供しています。したがって、ループ/ 2が呼び出された場合、最初の引数はself()から返されたPIDになります。 ループ/ 3が呼び出された場合は、pidを指定します。

のは、別の(些細な)例みましょう。

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 
関連する問題