命名型參數 - 更詳細的資訊
在本節中,我們將提供有關 命名類型引數 (實驗性) 的更多詳細資料。
語法
語法新增部分
SimpleExpr1 ::= ...
| SimpleExpr (TypeArgs | NamedTypeArgs)
NamedTypeArgs ::= ‘[’ NamedTypeArg {‘,’ NamedTypeArg} ‘]’
NamedTypeArg ::= id ‘=’ Type
特別注意,命名引數無法傳遞給類型建構函式
class C[T]
val x: C[T = Int] = // error
new C[T = Int] // error
class E extends C[T = Int] // error
相容性考量
命名類型引數不會影響二進位相容性,但會影響原始碼相容性:如果方法類型參數的名稱已變更,任何現有的命名參照都會中斷。這表示方法類型參數的名稱現在是程式庫公開 API 的一部分。
(未實作的建議:為了減輕此問題,scala.deprecatedName
可以擴充,以適用於方法類型參數。)
在本文中