2
我有以下類來構建:更新不可變對象
class Player(val name: String, val onField: Boolean, val draft: Int, val perc: Int, val height: Int, val timePlayed: Int) {
override def toString: String = name
}
我試圖做
def play(team: List[Player]): List[Player] =
team map (p => new Player(p.name, p.onField, p.draft, p.perc, p.height, p.timePlayed + 1))
這實際上是一個遞增場 「timePlayed」並返回新的「列表」的球員。
有沒有更方便的方法來做到這一點?也許:
def play(team: List[Player]): List[Player] =
team map (p => p.timeIncremented())
我的問題是如何以更方便的方式實現timeIncremented()?所以我不必這樣做:
new Player(p.name, p.onField, p.draft, p.perc, p.height, p.timePlayed + 1)
謝謝!