Scala的Range类独家结束

Ota*_*edo 6 scala range

根据该方法的Scala文档Range.end,它返回"范围的独占结束".那么为什么它为符号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
Run Code Online (Sandbox Code Playgroud)

不应该res0 == 11

Ric*_*tze 13

tountil导致相关但不同的Range类:Range.InclusiveRange; Range.Inclusive IS-A Range.

  • isInclusive 将区分两种类型.

  • end或者上限,在该范围的上下文中被解释为排他性或包含性.上限是范围规范中提供的第二个数字10,在原始问题的两个示例案例中都是如此.是的,如果范围从高到低(即1 until -10),这个"上限"可能小于"下限" .

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