2
私はそれを持っていますこれはダムの質問感じですが、ここに行く...別のタイプの要素のサブセットであるタイプを定義することはできますか?ここでは簡単な例を示します。タイプを別のタイプのサブセットに拘束する方法は?
scala> class Even(i: Int) {
| assert(i % 2 == 0)
| }
defined class Even
scala> new Even(3)
java.lang.AssertionError: assertion failed
これはランタイムチェックです。コンパイル時にチェックされるような型を定義できますか? IEの入力パラメータi
は常に偶数であることがわかりますか?
C#はコンパイル時にこの限定バージョンを実行できます。 –
'Even.apply'を定義して、approprite時に' Odd'を生成するようにすることができます。冗談だ... – Raphael