在导入中使用“*”而不是“_”

M.G*_*.G. 3 scala

我有一个项目,它是 API 的代码。在build.sbtScala的版本中是:

scalaVersion := "2.13.8"
Run Code Online (Sandbox Code Playgroud)

在几个 Scala 文件中,我看到导入使用*而不是像_这样:

...
import sttp.tapir.*
...
Run Code Online (Sandbox Code Playgroud)

那个怎么样?据我了解,*可以在 Scala 3 中使用,但不能在 2.1x 中使用...我看不到任何库(它是一个很大的代码库)或与此相关的东西...为什么它可以工作而不是显示编译错误?

Gaë*_*l J 7

为了轻松迁移到 Scala 3,Scala 3 的一些语法可以在 Scala 2 中使用。

例如,请参阅 Scala 2.13.7 的发行说明:

与 Scala 3 保持一致

...

允许( import x.{*, given}# -Xsource:39724 by @smarter)

...

https://github.com/scala/scala/releases/tag/v2.13.7

虽然我不确定什么时候可以使用import X.*(据我了解,这在 2.13.7 之前就存在)。