我正在研究.sbt
扩展文件参考文档。我困惑的是什么代码:
lazy val version = new {
val finatra = "2.1.2"
}
我知道finatra
可以访问val version.finatra
,但它似乎是"对象单身。"像这样:
object version {
val finatra = "2.1.2"
}
在这种情况下,我还可以finatra
访问val version.finatra
我知道后者是创建"对象单身"的方法。
前一个怎么样?感谢
答案 0 :(得分:3)
简而言之,它正在创建Anonymous Type
的新实例考虑以下结构实例创建表达式:
new { def getName() = "aaron" }
这是一般实例创建表达式
的简写new AnyRef{ def getName() = "aaron" }
后者又是块
的简写{ class anon$X extends AnyRef{ def getName() = "aaron" }; new anon$X }