companion-object

    8熱度

    2回答

    來自Scala REPL的相當奇怪的行爲。 雖然下面的編譯沒有問題: class CompanionObjectTest { private val x = 3 } object CompanionObjectTest { def testMethod(y:CompanionObjectTest) = y.x + 3 } 私有變量似乎並沒有從在REPL同伴對象訪問:

    7熱度

    2回答

    我想寫一個類型別名縮短,漂亮和封裝的Scala代碼。 假設我得到了一些集合,它具有作爲一個映射列表的屬性,其值是元組的值。 我的類型會寫如List[Map[Int, (String, String)]]或其他任何更通用的東西,因爲我的應用程序允許它。我可以想象有一個超類型請求Seq[MapLike[Int, Any]]或任何漂浮我的船,具體的子類更具體。 然後我想爲這個長類型寫一個別名。 clas

    10熱度

    2回答

    我想向由建模工具生成的Java類添加隱式轉換。所以我想將它們添加到這些類的伴隨對象中,以便編譯器自動找到它們。但是我不能將它們添加到單獨的文件中,因爲伴侶必須在同一個文件中定義。我能做些什麼嗎? 當然,我可以在另一個對象中定義我所有的隱式轉換,然後將它帶入作用域,但這需要額外的導入。其他解決方案?

    2熱度

    1回答

    我想讓我的Scala代碼更具可讀性,因此我爲所有參數化類型添加了自定義類型。 所以我在包對象,爲簡單起見, type IntSeq = Seq[Int] 不過,現在我不能同伴對象上做簡單的apply。來自REPL: scala> IntSeq(1, 2, 3) <console>:8: error: not found: value IntSeq IntSeq(1, 2, 3

    0熱度

    2回答

    我剛剛學習Scala。我創建了一個伴侶對象(見下面的代碼片斷),我在其中定義了一個運算符^(表示複共軛)。我必須使用相關類中的伴隨對象名稱來限定它。我的印象是,我應該無條件地接觸同伴的方法。有人可以告訴我,如果我做錯了什麼嗎? class CQ(val r: Q, val i:Q) { def +(z : CQ): CQ = { return new CQ(r + z.r,

    5熱度

    3回答

    我認爲這個例子更容易展示。 比方說,我有一個條件的情況下類,與使用條件同伴目的是提供一種替代的構造,就像這樣: case class Condition( field: String, values: List[String]) } object Condition { def apply(field: String, value: String): Condit