我已经创建了一个名为LogActor的akka actor。LogActor的receive方法处理来自其他actors的消息,并将它们记录到指定的日志级别。
我可以通过两种方式区分不同的级别,第一种方式:
import LogLevel._
object LogLevel extends Enumeration {
type LogLevel = Value
val Error, Warning, Info, Debug = Value
}
case class LogMessage(level : LogLevel, msg : String)
第二点:(编辑)abstract class LogMessage(msg : String)
case class LogMessageError(msg : String) extends LogMessage(msg)
case class LogMessageWarning(msg : String) extends LogMessage(msg)
case class LogMessageInfo(msg : String) extends LogMessage(msg)
case class LogMessageDebug(msg : String) extends LogMessage(msg)
哪种方式更高效?匹配 case class 还是匹配 enum 值需要更少的时间?
(我阅读了这个问题,但没有任何答案涉及运行时问题)
case class ErrorLogMessage(msg : String) extends LogMessage
case class WarningLogMessage(msg : String) extends LogMessage
case class InfoLogMessage(msg : String) extends LogMessage
case class DebugLogMessage(msg : String) extends LogMessage? 有没有适当的方法将'msg'作为LogMessage的参数编写(这样就不需要在每个case类中编写它了..)? - user1768906