Компилятор хочет, чтобы вы написали заголовок функции (то есть функцию без тела), где вы указываете значение по умолчанию.
def try(num, other_num \\ 10)
def try(10 = num, other_num) do
num + other_num
end
def try(_num, _other_num) do
raise "This is incorrect"
end
Причина этого заключается в том, что пользователь не можетукажите разные значения по умолчанию для одной и той же функции, что будет неоднозначно, поскольку функции со значениями по умолчанию компилируются в несколько функций компилятором Elixir.
def a(b, c \\ 10), do: b + c
компилируется в:
def a(b), do: a(b, 10)
def a(b, c), do: b + c
Нет простого перевода, когда функция задает разные значения по умолчанию:
def a(b, c \\ 10), do: b
def a(b, c \\ 20), do: c