匯入
萬用字元和重新命名匯入(和匯出)的語法已變更。
萬用字元匯入
萬用字元匯入現在以 *
表示,而非底線。範例
import scala.annotation.* // imports everything in the annotation package
如果您想要特別匯入名為 *
的成員,您可以在其周圍使用反引號。
object A:
def * = ...
def min = ...
object B:
import A.`*` // imports just `*`
object C:
import A.* // imports everything in A
重新命名匯入
若要重新命名或排除匯入,我們現在使用 as
而不是 =>
。單一重新命名匯入不再需要用大括號括起來。範例
import A.{min as minimum, `*` as multiply}
import Predef.{augmentString as _, *} // imports everything except augmentString
import scala.annotation as ann
import java as j
移轉
為了支援跨建置,Scala 3.0 支援舊的匯入語法,其中萬用字元為 _
,重新命名為 =>
,以及新的匯入語法。舊的語法將會在未來的版本中移除。在設定 -source 3.1-migration -rewrite
下提供從舊語法到新語法的自動改寫。
語法
Import ::= ‘import’ ImportExpr {‘,’ ImportExpr}
ImportExpr ::= SimpleRef {‘.’ id} ‘.’ ImportSpec
| SimpleRef `as` id
ImportSpec ::= NamedSelector
| WildcardSelector
| ‘{’ ImportSelectors) ‘}’
NamedSelector ::= id [‘as’ (id | ‘_’)]
WildCardSelector ::= ‘*' | ‘given’ [InfixType]
ImportSelectors ::= NamedSelector [‘,’ ImportSelectors]
| WildCardSelector {‘,’ WildCardSelector}
本文中