Scala Case对象扩展特性
我们可以为类扩展trait提供参数,该类扩展trait的名称与抽象方法相同,如Scala Case对象扩展特性,scala,object,Scala,Object,我们可以为类扩展trait提供参数,该类扩展trait的名称与抽象方法相同,如 trait Trr{ def m: String } case class Trrrr(m: String) extends Trr //fine 这个例子编译得很好。但我尝试对case对象执行类似操作,但失败了: trait Command{ def name: String } case object Unload("unld") extends Command //compile error
trait Trr{
def m: String
}
case class Trrrr(m: String) extends Trr //fine
这个例子编译得很好。但我尝试对case对象执行类似操作,但失败了:
trait Command{
def name: String
}
case object Unload("unld") extends Command //compile error
有没有一种方法可以在保留命令
一个特征,而不是一个带有参数的抽象类的情况下简洁地编写此命令?我的意思不是这样的:
case object Unload extends Command {
override def name: String = "unld"
}
或
对象没有参数,事情不会比上面的短…您可以像这样直接实例化特征:
val newTrr = new Trr { val m = "example" }
此时,您可以像使用任何类实例一样使用newTrr值
println(newTrr.m)
将打印出:“示例”。没有其他更简洁的方法。
val newTrr = new Trr { val m = "example" }
println(newTrr.m)