Progression

Progression 은 시작점과 끝점이 있으면 구간을 지정할 수 있다. Range 와 다르게 증가 값이 1 이상이 될 수 있다.

open class CharProgression(
    val startInclusive: Char,
    val endInclusive: Char,
    val step: Int 
): Iterable<Char>

Progression 은 아래와 같이 세 가지 방식으로 생성할 수 있다.

function type function
infix downTo
infix step
extension reversed
1..10 step 2 // 1, 3, 5 ...
10 downTo 1 step 2 // 10, 8, 6 ...
(1..10).reversed() // 10 downTo 1 step 1

Range

Progression 을 상속 하고 있으며, 증가값이 1로 고정 되어 있다.

class CharRange(
    startInclusive: Char,
    endInclusive: Char 
): CharProgression(startInclusive, endInclusive, 1), ClosedRange<Char>

References

  • Kotlin In Action / Dmitry Jemerov, Svetlana Isakova 공저 / 에이콘