Scala:让特质依赖于其他特质
我想写一个trait家族,它的方法应该记录一些东西,一个Logger trait应该在具体的Logger中实现,并且只有当Logger被混合在一起时,才可能混合上面的trait。我只知道一个特性可以依赖于一个类,也就是说,它只能混合到拥有这个类作为超级类型的类中。我能做什么?听起来你需要Scala:让特质依赖于其他特质,scala,traits,Scala,Traits,我想写一个trait家族,它的方法应该记录一些东西,一个Logger trait应该在具体的Logger中实现,并且只有当Logger被混合在一起时,才可能混合上面的trait。我只知道一个特性可以依赖于一个类,也就是说,它只能混合到拥有这个类作为超级类型的类中。我能做什么?听起来你需要 trait Logger { def log(msg: String): Unit } trait ConsoleLogger extends Logger { def log(msg: String
trait Logger {
def log(msg: String): Unit
}
trait ConsoleLogger extends Logger {
def log(msg: String): Unit = { println(msg) }
}
trait NeedsLogger { self: Logger =>
def doSomething(): Unit = {
self.log("about to do something...")
self.log("it worked!")
}
}
object Test extends NeedsLogger with ConsoleLogger {
}
Test.doSomething()