Ranges
Range objects can be instantiated using the from..to
syntax. Their primary
purpose is to specify a range of unsigned integer numbers, such as indices for
array slices and iteration ranges in for statements.
let array = [10, 20, 30, 40, 50];
array[1..3] == [20, 30];
for i in 7..12 {
dbg(i); // Prints: 7, 8, 9, 10, and 11.
}
The from
and to
parts are any expressions that can be evaluated to unsigned
integer numbers. The from
value specifies the range's lower bound (inclusive),
and the to
value specifies the upper bound (exclusive).
The upper bound should be greater than or equal to the lower bound. Otherwise, the range is invalid, which will lead to runtime errors in most cases.
To construct a range with an "unlimited" upper bound, you can use the max
built-in constant, which evaluates to the maximum unsigned integer number
available on the current platform: 50..max
.