Optional and keyword arguments
When defining functions, one or more arguments can be given a default value such asf(arg = val)
. If no parameter is supplied for arg
, then val
is taken as the value of arg
. The position of these arguments in the function's input is important, just as it is for normal arguments; that's why they are called optional positional arguments. Here is an example of anf
function with an optional argument b
:
# code in arguments.jl: f(a, b = 5) = a + b
For example, if it's f(1)
, then it returns 6
; f(2, 5)
returns 7
; and f(3)
returns 8
. However, calling it with f()
or f(1,2,3)
returns an error, because there is no matching function f
with zero or three arguments. These arguments are still only defined by position: calling f(2, b = 5)
raises an error as ERROR: function f does not accept keyword arguments
.
Until now, arguments were only defined by position. For code clarity, it can be useful to explicitly call the by name, so they are called optional keyword arguments. Because...