在靈藥,人們可以以兩種不同的方式定義 「求和」 功能:爲什麼在elixir中定義命名函數有兩種方法?
def sum, do: 0
def sum(a), do: a
def sum(a, b), do: a + b
def sum(a, b, c), do: a + b + c
或
def sum() do 0 end
def sum(a) do a end
def sum(a,b) do a + b end
def sum(a,b,c) do a + b+ c end
我甚至可以混合使用這兩種方法:
def sum() do 0 end
def sum(a) do a end
def sum(a,b) do a + b end
def sum(a,b,c), do: a + b + c
我的問題是:爲什麼有兩種方法實現相同?在內聯函數的情況下,第二個是否首選?他們兩者的優點是什麼?
在此先感謝!