我想创建一个特殊的计算器。我认为这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
/* ... */
现在我可以使用 match-case 来解析输入。也许,我也应该使用traits
(即:trait Distributivity
等trait Commutativity
),这可能吗?这是一个好主意吗?