const class sys::Range
sys::Obj sys::Range
@Serializable { simple=true }
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 exclusive range.
- contains
-
Return if this range contains the specified integer.
Example:
(1..3).contains(2) => true (1..3).contains(4) => false
- each
-
Call the specified function for each integer in the range. Also see
Int.times.Example:
(1..3).each |i| { echo(i) } => 1, 2, 3 (1..<3).each |i| { echo(i) } => 1, 2 ('a'..'z').each |Int i| { echo(i) } => 'a', 'b', ... 'z' - eachWhile
-
Iterate every integer in the range until the function returns non-null. If function returns non-null, then break the iteration and return the resulting object. Return null if the function returns null for every integer in the range.
- end
-
Int end()Return end index.
Example:
(1..3).end => 3
- equals
-
virtual override Bool equals(Obj? obj)Return true if same start, end, and exclusive.
- exclusive
-
Bool exclusive()Is the end index exclusive.
Example:
(1..3).exclusive => false (1..<3).exclusive => true
- first
-
Int? first()Get the first value of the range. If range contains no values then return null. Equivalent to
toList.first. - fromStr
-
static new 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.
- hash
-
virtual override Int hash()Return start ^ end.
- inclusive
-
Bool inclusive()Is the end index inclusive.
Example:
(1..3).inclusive => true (1..<3).inclusive => false
- isEmpty
-
Bool isEmpty()Return if this range contains no integer values. Equivalent to
toList.isEmpty. - last
-
Int? last()Get the last value of the range. If range contains no values then return null. Equivalent to
toList.last. - make
-
new make(Int start, Int end, Bool exclusive)Constructor with start, end, and exclusive flag (all must be non-null).
- makeExclusive
-
new makeExclusive(Int start, Int end)Convenience for make(start, end, true).
- makeInclusive
-
new makeInclusive(Int start, Int end)Convenience for make(start, end, false).
- map
-
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] - max
-
Int? max()Get the maximum value of the range. If range contains no values then return null. Equivalent to
toList.max. - min
-
Int? min()Get the minimum value of the range. If range contains no values then return null. Equivalent to
toList.min. - offset
-
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
- random
-
Int random()Convenience for
Int.random(this). Also seeInt.random,Float.random,List.random, andRandom. - start
-
Int start()Return start index.
Example:
(1..3).start => 1
- toList
-
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]
- toStr
-
virtual override Str toStr()If inclusive return "start..end", if exclusive return "start..<end".