Functions and Parameters
Default Arguments
Let a parameter use a default value when the caller omits it.
defaults
A default argument supplies a value for a parameter the caller does not pass.
Default Arguments
DefaultArguments.kt
Replay: real traced execution (multi-file project)
fun label(name: String, suffix: String = "!"): String {
return name + suffix
}
fun main() {
val suffix = "?"
val defaultLabel = label("Kotlin")
val customLabel = label("Kotlin", suffix)
println("default=$defaultLabel")
println("custom=$customLabel")
}
fun label(name: String, suffix: String = "!"): String {
return name + suffix
}
fun main() {
val suffix = "!"
val defaultLabel = label("Kotlin")
val customLabel = label("Kotlin", suffix)
println("default=$defaultLabel")
println("custom=$customLabel")
}
fun label(name: String, suffix: String = "!"): String {
return name + suffix
}
fun main() {
val suffix = "."
val defaultLabel = label("Kotlin")
val customLabel = label("Kotlin", suffix)
println("default=$defaultLabel")
println("custom=$customLabel")
}
suffix ← ?
5fun main() {6 val suffix→ ? = "?" //@suffix="!", "."7 val defaultLabel = label("Kotlin")8 val customLabel = label("Kotlin", suffix)fun label(name: String, suffix: String = "!"): String
pass 1 of 21fun label(nameKotlin: String, suffix!: String = "!"): String {2 return nameKotlin + suffix!3}defaultLabel ← Kotlin!
6val suffix = "?" //@suffix="!", "."7val defaultLabel→ Kotlin! = label("Kotlin")8val customLabel = label("Kotlin", suffix?)fun label(name: String, suffix: String = "!"): String
pass 2 of 21fun label(nameKotlin: String, suffix?: String = "!"): String {2 return nameKotlin + suffix?3}customLabel ← Kotlin?
7 val defaultLabel = label("Kotlin")8 val customLabel→ Kotlin? = label("Kotlin", suffix?)910 println("default=$defaultLabelKotlin!")11 println("custom=$customLabelKotlin?")12}outputdefault=Kotlin! custom=Kotlin?
suffix ← !
5fun main() {6 val suffix→ ! = "!"7 val defaultLabel = label("Kotlin")8 val customLabel = label("Kotlin", suffix)fun label(name: String, suffix: String = "!"): String
pass 1 of 21fun label(nameKotlin: String, suffix!: String = "!"): String {2 return nameKotlin + suffix!3}defaultLabel ← Kotlin!
6val suffix = "!"7val defaultLabel→ Kotlin! = label("Kotlin")8val customLabel = label("Kotlin", suffix!)fun label(name: String, suffix: String = "!"): String
pass 2 of 21fun label(nameKotlin: String, suffix!: String = "!"): String {2 return nameKotlin + suffix!3}customLabel ← Kotlin!
7 val defaultLabel = label("Kotlin")8 val customLabel→ Kotlin! = label("Kotlin", suffix!)910 println("default=$defaultLabelKotlin!")11 println("custom=$customLabelKotlin!")12}outputdefault=Kotlin! custom=Kotlin!
suffix ← .
5fun main() {6 val suffix→ . = "."7 val defaultLabel = label("Kotlin")8 val customLabel = label("Kotlin", suffix)fun label(name: String, suffix: String = "!"): String
pass 1 of 21fun label(nameKotlin: String, suffix!: String = "!"): String {2 return nameKotlin + suffix!3}defaultLabel ← Kotlin!
6val suffix = "."7val defaultLabel→ Kotlin! = label("Kotlin")8val customLabel = label("Kotlin", suffix.)fun label(name: String, suffix: String = "!"): String
pass 2 of 21fun label(nameKotlin: String, suffix.: String = "!"): String {2 return nameKotlin + suffix.3}customLabel ← Kotlin.
7 val defaultLabel = label("Kotlin")8 val customLabel→ Kotlin. = label("Kotlin", suffix.)910 println("default=$defaultLabelKotlin!")11 println("custom=$customLabelKotlin.")12}outputdefault=Kotlin! custom=Kotlin.