2

我正在制作一个战略游戏,我尝试应用我学到的东西,尝试使用不可变的数据。在我的游戏中我有单位,这些单位可以有不同的特殊功能。例如,某些飞机可以隐藏自己。我搜索的是一种能够做某种事情的方法

abstract class Units {
val life:Int
}

trait Hidable { self: Units => 
val hided:Boolean
def hide:Units with Hidable= ....
}

无需复制粘贴:

def hide = copy(hided=true)

在每个混合 Hidable 的案例类上。

4

1 回答 1

1

更新不可变数据结构的一种常用方法是使用镜头。有一个编译器插件可以为您的代码生成镜头,尽管它不是很适合生产。它也仅适用于旧的 scalaz。

这是一个相关的问题

于 2012-11-11T11:26:49.610 回答