这段代码是如何工作的?
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