簡體   English   中英

Scala 中的“new {}”是什么意思?

[英]What is the meaning of “new {}” in Scala?

我正在研究.sbt擴展文件參考文檔。 我感到困惑的代碼是:

lazy val version = new {
    val finatra = "2.1.2"
}

我知道 val finatra可以通過version.finatra訪問,但它看起來像“對象單例”。 像這樣:

object version {
    val finatra = "2.1.2"
}

在這種情況下,我還可以通過version.finatra訪問 val finatra
我知道后者是創建“對象單例”的方法。 前一個呢? 謝謝

簡而言之,它正在創建匿名類型的新實例

根據Scala 語言規范


考慮以下結構實例創建表達式:

new { def getName() = "aaron" }

這是通用實例創建表達式的簡寫

new AnyRef{ def getName() = "aaron" }

后者反過來又是塊的簡寫

{ class anon$X extends AnyRef{ def getName() = "aaron" }; new anon$X }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM