본문 바로가기

Kotlin/Basic

[Kotlin basic] forEach

 

 

Kotlin에서 forEach를 사용하는 방법에 대해 좀더 심화적으로 알아보겠습니다.

 

# 개요

forEach는 순서가 있는 데이터(CharSequence, Iterable 등)에 대한 확장함수로, 기존의 for문을 사용하던 외부 반복(Iteration)에서 내부 반복(Iteration)으로 바꿔줄 수 있게 하여 가독성을 좋게 만든 확장 함수입니다.

 

먼저 외부 반복에 대해 알아보겠습니다.

외부 반복이란 다음과 같이 외부에서 반복하는 것을 말합니다.

fun main() {
    val exampleList = mutableListOf(1, 2, 3)
	for (numb in exampleList) {
    	println(numb)
	 }
}

 

이 코드를 forEach를 이용하여 내부반복으로 바꾼다면 다음과 같이 바뀌게 됩니다.

forEach는 해당 순번에 해당하는 원소를 지목하기 위해 it 키워드를 사용합니다.

fun main() {
    val exampleList = mutableListOf(1, 2, 3)
	exampleList.forEach { 
        print(it) 
    }
}

한결 더 가독성이 좋아졌습니다.

 

# 정의

public inline fun <T> Iterable<T>.forEach(action: (T) -> Unit): Unit

forEach는 Iterable에 대한 반복(iteration)을 수행하면서, 각 원소에 대해 입력값으로 받은 action을 수행하도록 만드는 확장함수입니다.

action을 T 타입의 인자를 받아 처리하고, Unit을 return하는 함수입니다.

 

저는 action은 현재까진 잘 사용하지 않지만, 아래와 같은 형태로 사용이 가능합니다.

fun main() {
   	val exampleList = mutableListOf(1, 2, 3)
	val action = { 
        value: Int -> print(value) 
    }
	exampleList.forEach(action)
}

[Kotlin basic] forEach