前章:パラメータのデフォルト値


  • メソッドを呼び出す際、引数にパラメータ名をつけてラベル付けすることができる。これを名前付き引数と呼ぶ
    • 2つのパラメータの型が同じ場合、誤って引数が入れ替わることを防ぐことができる
def printName(first: String, last: String): Unit =
  println(s"$first $last")
 
printName("John", "Public")  // John Public
printName(first = "John", last = "Public")  // John Public
printName(last = "Public", first = "John")  // John Public
printName("Elton", last = "John")  // Elton John
  • 名前付き引数は任意の順序で記述できるが、左から右へのパラメータ順でない場合、残りの引数には名前を付ける必要がある
def printFullName(first: String, middle: String = "Q.", last: String): Unit =
  println(s"$first $middle $last")
 
printFullName(first = "John", last = "Public")  // John Q. Public
printFullName("John", last = "Public")  // Prints John Q. Public
printFullName("John", middle = "Quincy", "Public")  // John Quincy Public
printFullName(last = "Public", first = "John")  // John Q. Public
printFullName(last = "Public", "John")  // error: positional after named argument
  • Javaメソッドを名前付き引数で呼ぶには、そのJavaライブラリが-parametersフラグ付きでコンパイルされている場合に限られる

次章:トレイト