Scala 導覽

命名參數

語言

呼叫方法時,您可以使用參數名稱標記參數,如下所示

def printName(first: String, last: String): Unit =
  println(s"$first $last")

printName("John", "Public")  // Prints "John Public"
printName(first = "John", last = "Public")  // Prints "John Public"
printName(last = "Public", first = "John")  // Prints "John Public"
printName("Elton", last = "John")  // Prints "Elton John"

當兩個參數具有相同的類型,且參數可能會意外交換時,這很有用。

請注意,命名參數可以按任何順序撰寫。但是,一旦參數不在參數順序中,從左到右讀取,則其餘參數必須命名。

在以下範例中,命名參數允許省略中間參數。但在錯誤情況下,第一個參數順序錯誤,因此必須命名第二個參數。

def printFullName(first: String, middle: String = "Q.", last: String): Unit =
  println(s"$first $middle $last")

printFullName(first = "John", last = "Public")  // Prints "John Q. Public"
printFullName("John", last = "Public")  // Prints "John Q. Public"
printFullName("John", middle = "Quincy", "Public")  // Prints "John Quincy Public"
printFullName(last = "Public", first = "John")  // Prints "John Q. Public"
printFullName(last = "Public", "John")  // error: positional after named argument

命名參數適用於呼叫 Java 方法,但前提是相關的 Java 函式庫使用 -parameters 旗標編譯。

此頁面的貢獻者