有人可以在Predef对象中解释以下代码吗?谢谢.
scala.`package` // to force scala package object to be seen.
scala.collection.immutable.List // to force Nil, :: to be seen.
Run Code Online (Sandbox Code Playgroud)
(链接).我只能猜测.当您使用单个对象作为表达式时,这与强制a的求值具有相同的效果lazy val,换句话说,如果它尚未初始化,它将运行对象的主体.
例如:
object Foo {
println("Foo is launching rockets...")
}
Run Code Online (Sandbox Code Playgroud)
现在你写的时候
Foo // prints `Foo is launching rockets...`
Run Code Online (Sandbox Code Playgroud)
这强制评估内容Foo.
所以我的猜测是,Predef这只是确保scala包对象中的某些东西List被初始化.非常不可能你会打扰用户.