- 21 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 09:46:41 ]
- 続き。
パターンが網羅されているかを静的にチェック可能というのは、 例えば次のようなコードを書いたときに(Numのパターンの書き忘れ)、コンパイラが warningを出してくれることを指している。 def eval(exp :Exp) :Int = exp match { case Add(l, r) => eval(l) + eval(r) case Sub(l, r) => eval(l) + eval(r) } ただし、Scalaでこの場合にwarningを出すためには、宣言を abstract sealed class Exp case class Add(lhs :Exp, rhs :Exp) extends Exp case class Sub(lhs :Exp, rhs :Exp) extends Exp case class Num(value :Int) extends Exp のように、抽象クラスであるExpをsealedとして宣言しておく必要がある。
|

|