for-each문
for (number in numbers){} // java - for (long number : numbers) {}
- numbers 자리에는 java 처럼 iterable이 구현된 타입이면 모두 가능함
전통적인 for문
for (i in 1..3){} // java - for (int i = 1; i <= 3; i++) {}
for (i in 3 downTo 1) {} // java - for (int i = 3; i >= 1; i--){}
for (i in 1..5 step 2) {} // java - for (int i = 1; i <= 5; i+=2){}
Progression과 Range

..연산자 : 범위를 만들어 내는 연산자
.. 연산자는 IntRange같이 {$type}Range 타입을 리턴하는 operator fun
{$type}Range 타입은 {$type}Progression 타입을 상속받음
{$type}Progression 클래스는 시작 값, 끝 값, 공차를 생성자 필드로 받음 - Progression(start, endInclusive, step)
- 위에서 본
downTo와 step을 통해 생성자 필드 파라미터 값을 변경할 수 있음
- 3
downTo 1 : 시작 값 3, 끝 값 1, 공차 -1인 등차수열
- 1..5
step 2 : 시작 값 1, 끝 값 5, 공차 2인 등차수열
downTo, step도 함수다!
- downTo, step도 함수 - 중위호출함수
- 등차 수열에 대한 함수를 호출함