Scala 按字段处理案例类
我有一个模拟国际象棋游戏的模块,有以下两个类:Scala 按字段处理案例类,scala,Scala,我有一个模拟国际象棋游戏的模块,有以下两个类: case class Pos(x: Char, y: Char) abstract class Piece(player: Int, pos: Pos) 我有一套作品: val pieces: Set[Piece] 我想这样过滤它: pieces.filter(piece => !(piece.pos == pos2)) 但是,我遇到了以下错误: Error:(45, 36) value pos is not a member of
case class Pos(x: Char, y: Char)
abstract class Piece(player: Int, pos: Pos)
我有一套作品
:
val pieces: Set[Piece]
我想这样过滤它:
pieces.filter(piece => !(piece.pos == pos2))
但是,我遇到了以下错误:
Error:(45, 36) value pos is not a member of chess.Piece
pieces.filter(piece => !(piece.pos == pos2))
^
为什么会这样?我不能用
.pos
引用Piece
类型的变量吗?发生这种情况是因为没有为Piece类设置getter
// No getters/setters created
abstract class Piece(player: Int, pos: Pos)
// Only Getters created because constructor params are immutable
abstract class Piece(val player: Int, val pos: Pos)
// Both Getters & Setter created because constructor params are mutable
abstract class Piece(var player: Int, var pos: Pos)
发生这种情况是因为没有为您的Piece类设置getter
// No getters/setters created
abstract class Piece(player: Int, pos: Pos)
// Only Getters created because constructor params are immutable
abstract class Piece(val player: Int, val pos: Pos)
// Both Getters & Setter created because constructor params are mutable
abstract class Piece(var player: Int, var pos: Pos)
你能展示抽象类的实现吗?你能展示抽象类的实现吗?