@Serializable {
simple=true
collection=false
}
Range represents a contiguous range of integers from start to end. Ranges may be represented as literals in Fantom source code as "start..end" for an inclusive end or "start..<end" for an exlusive range.
Slots
- containsSource
-
Return if this range contains the specified integer.
Example:
(1..3).contains(2) => true (1..3).contains(4) => false
- eachSource
-
Call the specified function for each integer in the range.
Example:
('a'..'z').each |Int i| { echo(i) }
- endSource
-
Int end()
Return end index.
Example:
(1..3).end => 3
- equalsSource
-
override Bool equals(Obj? obj)
Overrides sys::Obj.equals
Return true if same start, end, and exclusive.
- exclusiveSource
-
Bool exclusive()
Is the end index exclusive.
Example:
(1..3).exclusive => false (1..<3).exclusive => true
- firstSource
-
Int? first()
Get the first value of the range. If range contains no values then return null. Equivalent to
toList.first
. - fromStrSource
-
static Range? fromStr(Str s, Bool checked := true)
Parse from string format - inclusive is "start..end", or exclusive is "start..<end". If invalid format then throw ParseErr or return null based on checked flag.
- hashSource
-
override Int hash()
Overrides sys::Obj.hash
Return start ^ end.
- inclusiveSource
-
Bool inclusive()
Is the end index inclusive.
Example:
(1..3).inclusive => true (1..<3).inclusive => false
- isEmptySource
-
Bool isEmpty()
Return if this range contains no integer values. Equivalent to
toList.isEmpty
. - lastSource
-
Int? last()
Get the last value of the range. If range contains no values then return null. Equivalent to
toList.last
. - makeSource
-
new make(Int start, Int end, Bool exclusive)
Constructor with start, end, and exclusive flag (all must be non-null).
- makeExclusiveSource
-
new makeExclusive(Int start, Int end)
Convenience for make(start, end, true).
- makeInclusiveSource
-
new makeInclusive(Int start, Int end)
Convenience for make(start, end, false).
- mapSource
-
Create a new list which is the result of calling c for every integer in the range. The new list is typed based on the return type of c.
Example:
(10..15).map |i->Str| { i.toHex } => Str[a, b, c, d, e, f]
- maxSource
-
Int? max()
Get the maximum value of the range. If range contains no values then return null. Equivalent to
toList.max
. - minSource
-
Int? min()
Get the minimum value of the range. If range contains no values then return null. Equivalent to
toList.min
. - offsetSource
-
Create a new range by adding offset to this range's start and end values.
Example:
(3..5).offset(2) => 5..7 (3..<5).offset(-2) => 1..<3
- randomSource
-
Int random()
Convenience for
Int.random(this)
. - startSource
-
Int start()
Return start index.
Example:
(1..3).start => 1
- toListSource
-
Int[] toList()
Convert this range into a list of Ints.
Example:
(2..4).toList => [2,3,4] (2..<4).toList => [2,3] (10..8).toList => [10,9,8]
- toStrSource
-
override Str toStr()
Overrides sys::Obj.toStr
If inclusive return "start..end", if exclusive return "start..<end".