Sometimes we need a function, which requires several arguments. It's normal situation and this is the way functions work normally almost in all programming languages. Optional arguments will make your code easier and more powerful with decreasing a number of functions you create.
Example No.1 : Calculating engine consumption
For example, let's create a function, which returns fuel consumption depending on engine volume (cubic centimeters = cc).
function ShowConsumption(cc) return round(cc/170) # rounding float-number result to the 2nd decimal end
So, when we have to know a consumption of an engine of 1950cc, we will provide a parameter 1950:
julia> println(ShowConsumption(1950)) 11.47
Great, and what we have to do in case we have to add new functionality: for example, Consumption in winter. What we will do? Sure, we will write a new function ShowConstumptionInWinter(cc), but there's a more clever way to solve a problem: we can use optional arguments for our function.
We will leave original function ShowConsumption and add 1 optional argument, which will be used only in case we want our function calculate something different. Let's take we know that for winter consumption is as twice as big as in summer and it means that function must double normal consumption. It's better to show in on example: