2012-09-15 1 views
6

Range.endScala documentation에 따르면 "범위의 배타적 인 끝"을 반환합니다. 그렇다면 tountil 표기법에 대해 동일한 값을 반환하는 이유는 무엇입니까? 예를 들면 :스칼라의 Range 클래스에서 Exclusive end

Welcome to Scala version 2.9.2 (Java HotSpot(TM) Server VM, Java 1.7.0). 
Type in expressions to have them evaluated. 
Type :help for more information. 

scala> (1 to 10).end 
res0: Int = 10 

scala> (1 until 10).end 
res1: Int = 10 

해야하지 res0 == 11?

+1

발생하지 않고, 그것 [포함 된] (http://www.scala-lang.org/api/current/scala/collection/immutable/Range$$Inclusive.html)이됩니다. – oldrinb

+2

이전에'end'에 대해 들어 본 적이 없지만 마지막 요소를 원하면'last'를 사용하십시오. 스칼라의 문서가 때로는 최선이 아니다. –

답변

12

to와 관련되지만 다른 Range 수업 until 결과 : Range.Inclusive 각각 Range; Range.Inclusive IS-A Range.

  • isInclusive는 두 클래스 유형을 구분합니다.

  • 또는 그 상한은 배타적이거나 포괄적 인 범위의 문맥으로 해석된다. 상한값은 범위 지정에 제공된 두 번째 숫자이며 원래 질문의 두 경우 모두 10입니다. 그리고 예,이 "상한"은 범위가 높음에서 낮음으로 바뀌면 (예 : 1 until -10) "하한"보다 낮을 수 있습니다.

  • last은 범위의 마지막 값을 반환합니다. 이는 end에서 얻으려는 값일 수 있습니다. [`RichInt.to` (http://www.scala-lang.org/api/current/scala/runtime/RichInt.html) 단순한 'Range`에