[見下面的代碼片段] 我讀到,我有一個X是一個片斷,我有一個球員需要一塊。玩家Me試圖用Piece X來定義這件作品。然而Scala並不認爲X是一件作品,而是它看到的是'X.type'。 X.type是什麼意思?我不確定我的問題是什麼,所以我很難搜索。斯卡拉不解決X爲Y,即使X延伸Y
我不明白這可以是陰影類型[見Scala really weird Type Mismatch],因爲我沒有指定另一個'Piece',而只是指定我需要一個'Piece'。
似乎有什麼可以阻止斯卡拉解決X作爲一塊。
要嘗試在REPL
trait Piece { val piece: Char }
case class X extends Piece { val piece: Char = 'X' }
trait Player { val piece: Piece }
case class Me extends Player { val piece: Piece = X }
結果
error: type mismatch;
found : X.type
required: Piece
case class Max extends Player { val piece: Piece = X }
啊,非常感謝!我通常有一個參數,所以我從來沒有遇到過這個問題。即使使用X()解決了這個問題。沒有意識到一個類是一個類型。哇現在模式匹配更有意義,而類是實例藍圖的事實更加清晰,真棒。它只是點擊! – Miles
這個答案實際上並不完全正確。你能否更新它以符合我的回答?只是爲了你的利益,你知道,樂於助人。 –