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 を mixin するすべてのケース クラスで。

4

1 に答える 1

1

不変のデータ構造を更新する一般的な方法は、レンズを使用することです。コードのレンズを生成するためのコンパイラ プラグインがありますが、本番環境にはあまり対応していません。また、古い scalaz のみで利用可能です。

ここに関連する質問があります。

于 2012-11-11T11:26:49.610 に答える