我正在制作一个战略游戏,并尝试应用我学到的东西,尝试使用不可变数据。在我的游戏中我有单位,这些单位可以有不同的特殊功能。例如有些飞机可以隐藏自己。我搜索是一种方法,能够做到某种 abstract class Units {
val life:Int
}
trait Hidable { self: Units =>
val hided:Boolean
def hide:Units wit
随着Scalaz 7的目的的产品,我们可以为类群的产品获得零: scala> mzero[(Int, String)]
res13: (Int, String) = (0,"")
是否有更简单的方式来获得零的情况下类,其字段是monoids?理想情况下,不需要重复字段类型àla: scala> case class Foo(x: Int, y: String)
defined class
我刚刚开始使用Scalaz。我试图在它的超类中为我的类型定义一个Zero。 class Base {
implicit def BaseZ: Zero[this.type] = zero(classOf[this.type].newInstance())
}
class Child extends Base
~Option(null:Child) //trying to mak
如果我有一个单子转换型采用两个类型参数,我可以用liftM解除值到转化单子: scala> val o = 1.point[List].liftM[OptionT]
o: scalaz.OptionT[List,Int] = OptionT(List(Some(1)))
但是,如果我试图用同样的事EitherT好像我必须用一个类型别名(或类型拉姆达): scala> val e = 1.po