Scala Range构造函数API

Ped*_*rdo 1 scala

在Scala中,我们可以通过以下方式创建Range对象:

var range = 1 to 10
Run Code Online (Sandbox Code Playgroud)

或者改为使用构造函数

var range = new Range(1,10,1)
Run Code Online (Sandbox Code Playgroud)

但是,如果我们查看Scala API for Range,我们只能看到一个定义了3个参数的构造函数.所以我的问题是:我们在哪里可以找到像第一个那样的构造函数的API?我希望在API页面上找到这些信息.

Max*_*Max 6

第一种语法糖实际上是通过以下步骤实现的.

第1步:隐式转换IntRichInt使用中定义的内置隐式转换scala.Predef

@inline implicit def intWrapper(x: Int)         = new runtime.RichInt(x)
Run Code Online (Sandbox Code Playgroud)

第2步:委托RichInt.toRange.inclusive

def to(end: Int): Range.Inclusive = Range.inclusive(self, end)
Run Code Online (Sandbox Code Playgroud)

第3步:Range使用Range.inclusive函数构造对象

def inclusive(start: Int, end: Int): Range.Inclusive = new Inclusive(start, end, 1)

// note Range.Inclusive is a subclass of Range
class Inclusive(start: Int, end: Int, step: Int) extends Range(start, end, step)
Run Code Online (Sandbox Code Playgroud)