短短。
我们可以向类别提供参数,该类别以与
的抽象方法相同的名称扩展特征trait Trr{
def m: String
}
case class Trrrr(m: String) extends Trr //fine
此示例可以很好地编译。但是我试图用案例对象做类似的事情,但失败了:
trait Command{
def name: String
}
case object Unload("unld") extends Command //compile error
在离开 Command
特征时,有没有办法简洁地编写这篇文章,不是带有参数的抽象类?我的意思是不是那样:
case object Unload extends Command {
override def name: String = "unld"
}
或
abstract class Command(name: String)
case object Unload extends Command("unld")
case object Unload extends Command { val name = "unld" }
对象没有参数,事情不会比上述...
您可以像这样直接实例化特质:
val newTrr = new Trr { val m = "example" }
此时,您可以像任何类实例一样使用NewTrr值...
println(newTrr.m)
将打印出来:"示例"。