没有包名称的 Scala 导入包对象



这段代码是如何工作的?

PackageObject.scala

package lila
object makeTimeout {
  implicit val large = 5
}

Socket.scala

package lila.socket
import makeTimeout.large

lila.socket包导入makeTimeout.large,但它不使用lila.makeTimeout.large

它没有,但您的最小化示例与原始代码不同。

在原始代码中,makeTimeout 是在 trait WithPlay 中定义的,后来由包对象 lila 继承,在 package.scala 中定义,这使得makeTimeout成为包lila的成员。

请注意,如果将包声明分解为两行,则可以编译代码:

package lila
package socket

最新更新