Default parameters
- Kotlin course
- Beginner
- Lesson 74/116
- 5 min
Learn to define parameters with default values.
Default parameters: default values
You can give a parameter a default value: fun greet(name: String, msg: String = "Hi"). If the caller omits it, the default is used; if provided, it overrides.
fun greet(name: String, msg: String = "Hi") {
println("$msg $name")
}
greet("Ava") // Hi Ava
greet("Ava", "Hello") // Hello AvaDefault parameters let one definition support many usage forms; they reduce the need for overloads.
Order of default parameters
Default parameters usually sit at the end of the parameter list. This lets the caller pass the leading required parameters by position and omit the rest.
fun order(item: String, qty: Int = 1, gift: Boolean = false)
order("book") // qty=1, gift=false
order("book", 3) // qty=3, gift=false
order("book", 3, true) // qty=3, gift=trueIf a non-default parameter comes after a default one, the caller must use a named argument to skip the default one.
Practice Define greet with a default parameter
Define a fun greet(name: String, msg: String = "Hello") whose body is println("$msg $name"). From main call greet("Ava").
Starter code
fun main() {
// Call greet with "Ava" (msg uses its default)
}
// Define greet: msg parameter defaults to "Hello"Sample solution
fun main() {
greet("Ava")
}
fun greet(name: String, msg: String = "Hello") {
println("$msg $name")
}Expected output
Hello Ava
Questions and answers
Review the lesson questions together with their answers. To test yourself, solve the lesson interactively.
1 Fill in the blank: default value
fun greet(name: String, msg: String ____ "Hello")
fun greet(name: String, msg: String = "Hello")
Explanation: msg: String = "Hello" assigns a default value.
2 Match call form to outcome
| Term | Meaning |
|---|---|
msg: String = "Hi" |
Parameter with default |
name: String |
Required parameter |
greet("Ava") |
Default is used |
greet("Ava", "Hi") |
Default is overridden |
3 fun greet(name: String, msg: String = "Merhaba"); what does greet("Ayşe") print?
- Merhaba Ava Correct answer
- Ava
- Throws an exception
- Hi Ava
Explanation: Since msg is not given, the default "Merhaba" is used.