【发布时间】:2011-04-07 17:55:40
【问题描述】:
我想创建一个特殊的计算器。我认为case class 对运营来说是个好主意:
sealed class Expr
case class add(op1:Int, op2:Int) extends Expr
case class sub(op1:Int, op2:Int) extends Expr
case class mul(op1:Int, op2:Int) extends Expr
case class div(op1:Int, op2:Int) extends Expr
case class sqrt(op:Int) extends Expr
case class neg(op:Int) extends Expr
/* ... */
现在我可以使用匹配大小写来解析输入。
也许,我也应该使用traits(即:trait Distributivity、trait Commutativity 等),这可能吗?这是个好主意吗?
【问题讨论】:
-
尝试不使用。您是否发现自己缺少这些特质赋予您的能力?
标签: scala traits case-class