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

name
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)
  }
}
  1. 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, "!!!")
  2. def greet(name: String, mark: String = "!"): String =

    pass 1 of 2
    1object Main {2  def greet(nameMira: String, mark!: String = "!"): String = {3    "Hello, " + nameMira + mark!4  }
  3. normal ← Hello, Mira!

    7val name = "Mira" //@name="Kai", "Zoe"8val normal→ Hello, Mira! = greet(nameMira)9val excited = greet(nameMira, "!!!")1011println("normal=" + normal)
  4. def greet(name: String, mark: String = "!"): String =

    pass 2 of 2
    1object Main {2  def greet(nameMira: String, mark!!!: String = "!"): String = {3    "Hello, " + nameMira + mark!!!4  }
  5. 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!!!
  1. name ← Kai

    6def main(args: Array[String]): Unit = {7  val name→ Kai = "Kai"8  val normal = greet(nameKai)9  val excited = greet(name, "!!!")
  2. def greet(name: String, mark: String = "!"): String =

    pass 1 of 2
    1object Main {2  def greet(nameKai: String, mark!: String = "!"): String = {3    "Hello, " + nameKai + mark!4  }
  3. normal ← Hello, Kai!

    7val name = "Kai"8val normal→ Hello, Kai! = greet(nameKai)9val excited = greet(nameKai, "!!!")1011println("normal=" + normal)
  4. def greet(name: String, mark: String = "!"): String =

    pass 2 of 2
    1object Main {2  def greet(nameKai: String, mark!!!: String = "!"): String = {3    "Hello, " + nameKai + mark!!!4  }
  5. 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!!!
  1. name ← Zoe

    6def main(args: Array[String]): Unit = {7  val name→ Zoe = "Zoe"8  val normal = greet(nameZoe)9  val excited = greet(name, "!!!")
  2. def greet(name: String, mark: String = "!"): String =

    pass 1 of 2
    1object Main {2  def greet(nameZoe: String, mark!: String = "!"): String = {3    "Hello, " + nameZoe + mark!4  }
  3. normal ← Hello, Zoe!

    7val name = "Zoe"8val normal→ Hello, Zoe! = greet(nameZoe)9val excited = greet(nameZoe, "!!!")1011println("normal=" + normal)
  4. def greet(name: String, mark: String = "!"): String =

    pass 2 of 2
    1object Main {2  def greet(nameZoe: String, mark!!!: String = "!"): String = {3    "Hello, " + nameZoe + mark!!!4  }
  5. 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!!!