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) 

你能展示抽象类的实现吗?你能展示抽象类的实现吗?