Image
Kotlin/Collection

[Kotlin Collection] 1. Kotlin forEach 이용하여 데이터 조작하기 : Kotlin for을 대체하여 가독성 좋게 만들기

목차로 돌아가기

 

[Kotlin Collection] Kotlin에서 확장함수를 이용해 Collection 조작하기

목표 Collection 확장함수가 하는 일을 이해한다. 자유롭게 확장 함수를 이용해 데이터를 조작한다. 개요  Kotlin에서는 일반 컬렉션에도 함수형 프로그래밍을 위한 확장 함수를 제공하여, 데이터를

kotlinworld.com

 

 

목표

  • forEach를 이해한다.
  • forEach를 자유롭게 사용하여 데이터를 조작한다.

forEach()

개요

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

 

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

val exampleList = mutableListOf(1, 2, 3)
for (number in exampleList) {
    print(number)
}

 

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

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 하는 함수입니다.

 

작동방식

다음은 exampleList에 대해 forEach 연산을 수행하는 코드입니다.

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

 

위의 연산은 다음의 순서로 수행됩니다.

1. print(1) // Unit 반환
2. print(2) // Unit 반환
3. print(3) // Unit 반환

 

꼭 이렇게 써야만 하는 것은 아니고, 다음과 같이 action을 정의해서 써도 괜찮습니다.

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

 

반응형

 

이 글의 저작권은 '조세영의 Kotlin World' 에 있습니다. 글, 이미지 무단 재배포 및 변경을 금지합니다.

 

 

Kotlin, Android, Spring 사용자 오픈 카톡

오셔서 궁금한 점을 질문해보세요!
비밀번호 : kotlin22

open.kakao.com