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#은 컴파일 타임에 제한된 버전을 수행 할 수 있습니다. –
Approprite 때'Odd'가되도록'Even.apply'를 정의 할 수 있습니다. 농담하는 중 ... – Raphael