在 GitHub 上編輯此頁面

匯入

萬用字元和重新命名匯入(和匯出)的語法已變更。

萬用字元匯入

萬用字元匯入現在以 * 表示,而非底線。範例

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}