About Default Arguments
Functions may declare default values for one or more arguments.
def number(n \\ 13), do: "That's not my favorite"
- When compiling the above example, Elixir creates a function definition for
number/0
(no arguments), and number/1
(one argument).
- If more than one argument has default values, the default values will be applied to the function from left to right to fill in for missing arguments.
- If the function has multiple clauses, it is required to write a function header for the default arguments.
- Any expression can serve as the default value.
- Anonymous functions cannot have default arguments.
def guess(number \\ 5)
def guess(number) when number != 5, do: false
def guess(number) when number == 5, do: true
guess()
# => true