을 통해 나는 전략적 게임을 만들고있어 내가, 내가 배운 것을 적용 불변의 데이터를 사용하려고 시도합니다. 내 게임에는 유닛이 있고,이 유닛은 다른 특수 기능을 가질 수 있습니다. 예를 들어 일부 비행기는 자신을 숨길 수 있습니다. 내가 검색하여 붙여 넣기를 복사 할 필요없이업데이트 불변의 데이터 구조는 상속
abstract class Units {
val life:Int
}
trait Hidable { self: Units =>
val hided:Boolean
def hide:Units with Hidable= ....
}
의 일종을 수행 할 수있는 방법입니다 : 믹스 인 Hidable 모든 경우 클래스에
def hide = copy(hided=true)
.
그래서 클래스 내에서만 변경할 수 있도록 변경하면됩니다. –
정말 Hidable의 새로운 인스턴스를 반환해야합니다. – Atol
매크로 나 툴박스로 메타 프로그래밍 만하면 도움이 될 수 있습니다. 각 사례 클래스의'copy' 메소드는 컴파일러에 의해 생성되므로 유용합니다. 당신은 여기에 대해 자세히 알아볼 수 있습니다 : http://stackoverflow.com/questions/10373318/mixing-in-a-trait-dynamically –