The Range object is a "range" object inherited from Enumerable. You can think of it as an array of [x, x 1, x 2, x 3...x n], but it is better than such an array. It also saves storage space, because the range object only saves x and Not included. You can use the methods defined in Enumerable to operate the range object. The range object only implements the enumeration logic _each required by the Enumerable object and overrides the include method