withIndex()는 표준 라이브러리가 List에 대해 제공하는 확장 함수다. 이 함수는 컬렉션의 값을 IndexedValue라는 타입의 객체에 담아서 반환하며, 이 객체를 구조 분해할 수 있다.
Destructuring/LoopWithIndex.kt
import atomictest.trace
fun main() {
val list = listOf('a', 'b', 'c')
for ((index, value) in list.withIndex()) {
trace("$index:$value")
}
trace eq "0:a 1:b 2:c"
}
구조 분해 선언은 지역 var나 val에만 적용할 수 있으며, 클래스 프로퍼티를 정의할 때는 사용할 수 없다.