Say, you want to pass some information to a Function.
For example, if you want a Function to add two numbers. You need to pass those two numbers to the Function.
Say, in the below example, you want the add Function to add two numbers for you. And you have passed those numbers in between the brackets () of the add Function(i.e. firstNumber and secondNumber).
And those elements inside the brackets () of the add Function is called as Parameters and the actual values passed to them are called as Arguments.
fun main() { var firstNum: Int = 5 var secondNum: Int = 4 var value: Int = add(firstNum, secondNum) println("The added result is : "+value) } fun add(firstNumber: Int, secondNumber: Int): Int { var result: Int = firstNumber + secondNumber return result }
So, the variables inside the add Function is called as Parameter.
And the actual values (i.e. 5 and 4) to be sent to the Function are the Arguments.
Throughout the tutorial we will be calling the Parameters as Arguments to avoid unnecessary confusion.
Now, what if, you have defined a Function with two Argument but made the Function call with one argument.
Now, what if, you have defined a Function with two Argument but made the Function call with one argument.
fun main() { var firstNum: Int = 5 var secondNum: Int = 4 var value: Int = add(firstNum, secondNum) println("The added result is : "+value) } fun add(firstNumber: Int, secondNumber: Int, thirdNumber: Int): Int { var result: Int = firstNumber + secondNumber + thirdNumber return result }
So, in the above code we have the add Function with three Arguments.
fun add(firstNumber Int, secondNumber Int, thirdNumber Int) Int {
But when the add Function is called, it is called with two Arguments only.
And there is a mismatch of Arguments. And we end up with the below error.
No value passed for parameter 'thirdNumber'
Let us see in the next example, how to fix it.
To solve the problem of Argument mismatch, we use default arguments in function definition.
Let us see in the below example.
fun main() { var firstNum: Int = 5 var secondNum: Int = 4 var value: Int = add(firstNum, secondNum) println("The added result is : "+value) } fun add(firstNumber: Int, secondNumber: Int, thirdNumber: Int = 11): Int { var result: Int = firstNumber + secondNumber + thirdNumber return result }
So, in the previous example, we got the error as,
No value passed for parameter 'thirdNumber'
And, to avoid the Argument mismatch problem, we have used default arguments in function definition.
Placing default arguments in function definition.
So, we have placed the default value, 11 for the third argument
Now, although the function is called with two parameters,
var value: Int = add(firstNum, secondNum)
With values, 5 and 4.
var firstNum: Int = 5 var secondNum: Int = 4
The function add() is called. And firstNum is passed to firstNumber and secondNum to secondNumber.
So, what happens to the third argument?
Well! It gets initialised with the default value 11.