Scala的Range类独家结束

时间:2012-09-15 16:33:04

标签: scala range

根据方法Range.end的{​​{3}},它返回“范围的独占结束”。那么为什么它会为tountil符号返回相同的值?例如:

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 个答案:

答案 0 :(得分:12)

tountil分别产生相关但不同的Range类:Range.InclusiveRange; Range.Inclusive IS-A Range

  • isInclusive将区分两种类型。

  • end或上限,在范围的上下文中被解释为独占或包含。上限是范围规范中提供的第二个数字,在原始问题的两个示例案例中都是10。是的,如果范围从高到低(即1 until -10),这个“上限”可能小于“下界”。

  • last将返回范围中的最后一个值,这可能是您尝试从end获取的值。