实验性
实验性语言功能
所有实验性语言特性都可以在scala.language.experimental
包中找到。可以通过导入特性或使用-language
编译器标志来启用它们。
erasedDefinitions
: 启用对erased
修饰符的支持。fewerBraces
: 启用对使用缩进表示参数的支持。genericNumberLiterals
: 启用对泛型数字字面量的支持。namedTypeArguments
: 启用对命名类型参数的支持saferExceptions
: 启用对受检异常的支持。
实验性语言导入
通常,实验性语言特性可以在实验性范围内导入(参见实验性定义)。如果所有顶层定义都是@experimental
,则它们可以在顶层导入。
-experimental
编译器标志
此标志启用在项目中使用任何实验性语言特性。它通过向所有顶层定义添加@experimental
注释来实现此目的。因此,依赖项目也必须是实验性的。
由特殊编译器选项支持的实验性语言特性
一些仍在研究和开发中的实验性语言特性可以通过特殊的编译器选项启用。这些包括
-Yexplicit-nulls
. 启用对在类型系统中跟踪空引用的支持。-Ycc
. 启用对捕获检查的支持。
本文内容