Notice
Recent Posts
Recent Comments
Link
정답보다 해답을
[Kotlin] map와 forEach의 차이점 본문
코틀린 함수 중 forEach와 map에 대해 알아봅시다.
forEach과 map 함수는 모두 컬렉션의 각 요소에 대해 동작을 수행하지만, 그 동작의 결과에 차이가 있습니다.
Map
fun main() {
val people = listOf(Person("Alice", 29), Person("Bob", 31))
println(people.map {it.name})
}
data class Person(val name: String, val age: Int)
위와 같은 코드가 있을 때 어떤 결과가 나올까요??
예상했듯, Person 객체 안에 name을 잘 출력하고 있네요!
forEach
fun main() {
val people = listOf(Person("Alice", 29), Person("Bob", 31))
println(people.forEach {it.name})
}
data class Person(val name: String, val age: Int)
forEach의 경우 Unit을 반환하며, 아무런 반환값이 없는 것을 확안할 수 있습니다.
왜 이럴까요?
map 함수:
- map 함수는 주어진 람다를 컬렉션의 각 요소에 적용하고, 그 결과를 새로운 컬렉션에 담아 반환합니다.
- 따라서 map 함수의 결과는 새로운 리스트(또는 다른 타입의 컬렉션)입니다.
forEach 함수:
- forEach 함수는 주어진 람다를 컬렉션의 각 요소에 적용합니다.
- 그러나 forEach 함수는 반환값이 없으며, 단순히 각 요소를 반복하고 어떠한 결과도 반환하지 않습니다.
- 따라서 forEach 함수는 각 요소를 순회하면서 작업을 수행할 때 사용됩니다.