根据该方法的Scala文档Range.end,它返回"范围的独占结束".那么为什么它为符号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
Run Code Online (Sandbox Code Playgroud)
不应该res0 == 11?
Ric*_*tze 13
to并until导致相关但不同的Range类:Range.Inclusive和Range; Range.Inclusive IS-A Range.
isInclusive 将区分两种类型.
end或者上限,在该范围的上下文中被解释为排他性或包含性.上限是范围规范中提供的第二个数字10,在原始问题的两个示例案例中都是如此.是的,如果范围从高到低(即1 until -10),这个"上限"可能小于"下限" .
last将返回范围中的最后一个值,这可能是您尝试从中获取的值end.