在下文中,我无法在+
方法中引用特征的偏移值(第 4 行)。
正如目前所写this.offset
的那样,始终为零。我想要的是+
操作 LHS 的偏移量。
应该怎么做?
trait Side {
val offset: Int // <- I want to refer to this
def +(side: Side) = new Object with Side {
val offset: Int = this.offset + side.offset // but instead `this.offset` is 0
}
}
case object Left extends Side {
val offset = -1
}
case object Right extends Side {
val offset = 1
}
(Left + Right).offset // -> (0 + 1) -> 1
(Right + Left).offset // -> (0 + -1) -> -1