根据方法Range.end
的{{3}},它返回“范围的独占结束”。那么为什么它会为to
和until
符号返回相同的值?例如:
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
?
答案 0 :(得分:12)
to
和until
分别产生相关但不同的Range
类:Range.Inclusive
和Range
; Range.Inclusive IS-A Range
。
isInclusive
将区分两种类型。
end
或上限,在范围的上下文中被解释为独占或包含。上限是范围规范中提供的第二个数字,在原始问题的两个示例案例中都是10
。是的,如果范围从高到低(即1 until -10
),这个“上限”可能小于“下界”。
last
将返回范围中的最后一个值,这可能是您尝试从end
获取的值。