Functions and Methods
Default Arguments
Let a method supply a value when the caller omits it.
default-arguments
A default argument gives a parameter a fallback value. Callers can use the default or provide a different value.
Default Arguments
DefaultArguments.scala
Replay: real traced execution (multi-file project)
object Main {
def greet(name: String, mark: String = "!"): String = {
"Hello, " + name + mark
}
def main(args: Array[String]): Unit = {
val name = "Mira"
val normal = greet(name)
val excited = greet(name, "!!!")
println("normal=" + normal)
println("excited=" + excited)
}
}
object Main {
def greet(name: String, mark: String = "!"): String = {
"Hello, " + name + mark
}
def main(args: Array[String]): Unit = {
val name = "Kai"
val normal = greet(name)
val excited = greet(name, "!!!")
println("normal=" + normal)
println("excited=" + excited)
}
}
object Main {
def greet(name: String, mark: String = "!"): String = {
"Hello, " + name + mark
}
def main(args: Array[String]): Unit = {
val name = "Zoe"
val normal = greet(name)
val excited = greet(name, "!!!")
println("normal=" + normal)
println("excited=" + excited)
}
}
name ← Mira
6def main(args: Array[String]): Unit = {7 val name→ Mira = "Mira" //@name="Kai", "Zoe"8 val normal = greet(nameMira)9 val excited = greet(name, "!!!")def greet(name: String, mark: String = "!"): String =
pass 1 of 21object Main {2 def greet(nameMira: String, mark!: String = "!"): String = {3 "Hello, " + nameMira + mark!4 }normal ← Hello, Mira!
7val name = "Mira" //@name="Kai", "Zoe"8val normal→ Hello, Mira! = greet(nameMira)9val excited = greet(nameMira, "!!!")1011println("normal=" + normal)def greet(name: String, mark: String = "!"): String =
pass 2 of 21object Main {2 def greet(nameMira: String, mark!!!: String = "!"): String = {3 "Hello, " + nameMira + mark!!!4 }excited ← Hello, Mira!!!
8 val normal = greet(name)9 val excited→ Hello, Mira!!! = greet(nameMira, "!!!")1011 println("normal=" + normalHello, Mira!)12 println("excited=" + excitedHello, Mira!!!)13 }14}outputnormal=Hello, Mira! excited=Hello, Mira!!!
name ← Kai
6def main(args: Array[String]): Unit = {7 val name→ Kai = "Kai"8 val normal = greet(nameKai)9 val excited = greet(name, "!!!")def greet(name: String, mark: String = "!"): String =
pass 1 of 21object Main {2 def greet(nameKai: String, mark!: String = "!"): String = {3 "Hello, " + nameKai + mark!4 }normal ← Hello, Kai!
7val name = "Kai"8val normal→ Hello, Kai! = greet(nameKai)9val excited = greet(nameKai, "!!!")1011println("normal=" + normal)def greet(name: String, mark: String = "!"): String =
pass 2 of 21object Main {2 def greet(nameKai: String, mark!!!: String = "!"): String = {3 "Hello, " + nameKai + mark!!!4 }excited ← Hello, Kai!!!
8 val normal = greet(name)9 val excited→ Hello, Kai!!! = greet(nameKai, "!!!")1011 println("normal=" + normalHello, Kai!)12 println("excited=" + excitedHello, Kai!!!)13 }14}outputnormal=Hello, Kai! excited=Hello, Kai!!!
name ← Zoe
6def main(args: Array[String]): Unit = {7 val name→ Zoe = "Zoe"8 val normal = greet(nameZoe)9 val excited = greet(name, "!!!")def greet(name: String, mark: String = "!"): String =
pass 1 of 21object Main {2 def greet(nameZoe: String, mark!: String = "!"): String = {3 "Hello, " + nameZoe + mark!4 }normal ← Hello, Zoe!
7val name = "Zoe"8val normal→ Hello, Zoe! = greet(nameZoe)9val excited = greet(nameZoe, "!!!")1011println("normal=" + normal)def greet(name: String, mark: String = "!"): String =
pass 2 of 21object Main {2 def greet(nameZoe: String, mark!!!: String = "!"): String = {3 "Hello, " + nameZoe + mark!!!4 }excited ← Hello, Zoe!!!
8 val normal = greet(name)9 val excited→ Hello, Zoe!!! = greet(nameZoe, "!!!")1011 println("normal=" + normalHello, Zoe!)12 println("excited=" + excitedHello, Zoe!!!)13 }14}outputnormal=Hello, Zoe! excited=Hello, Zoe!!!