前章:クラス


  • Scalaでは、パラメータにデフォルト値を設定する機能が提供されていて、デフォルト値が設定されたパラメータは省略可能
def log(message: String, level: String = "INFO") = println(s"$level: $message")
 
log("System starting")  // INFO: System starting
log("User not found", "WARNING")  // WARNING: User not found
  • Scala では、デフォルト値を持つ同名のメソッド(オーバーロード)を2つ定義できない。引数を省略して呼んだとき(例: A.func())、コンパイラがどちらのメソッドを呼ぶつもりか判断できず曖昧になるため
object A:
  def func(x: Int = 34): Unit
  def func(y: String = "abc"): Unit

次章:名前付き引数