【发布时间】:2014-01-30 05:24:59
【问题描述】:
[见下面的sn-p] 我读到我有一个 X,它是一个棋子,我有一个需要棋子的玩家。玩家 Me 试图用 Piece X 来定义这个 Piece。然而 Scala 并没有将 X 识别为一个片段,而是看到了“X.type”。 X.type 是什么意思?我不确定我的问题是什么,所以我很难搜索。
我不明白这怎么会是类型阴影 [参见Scala really weird Type Mismatch],因为我没有指定另一个“Piece”,而是只指定我需要一个“Piece”。
似乎有些东西阻止了 Scala 将 X 解析为 Piece。
在 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 }
【问题讨论】:
标签: scala types type-mismatch traits mismatch