달나라 노트

Kotlin - map function 본문

Kotlin

Kotlin - map function

CosmosProject 2021. 3. 15. 23:30
728x90
반응형

 

 

 

Original source = play.kotlinlang.org/byExample/01_introduction/01_Hello%20world

 

 

 

Kotlin의 map function은 list의 각 요소에 어떤 로직을 적용하여 그 결과를 담은 list를 return합니다.

 

 

fun main() {
    var list_numbers = listOf(1, -1, 2, -2, 3, -3, 4, -4, 5, -5) // 1
    var list_doubled = list_numbers.map {x -> x * 2} // 2
    var list_negative = list_numbers.map {y -> y * (-1)} // 3
    var list_even = list_numbers.map {z -> z % 2 == 0 } // 4

    println(list_numbers) // 1
    println(list_doubled) // 2
    println(list_negative) // 3
    println(list_even) // 4



    var list_doubled2 = list_numbers.map {it * 2} // 5
    var list_negative2 = list_numbers.map {it * (-1)} // 5

    println(list_doubled2)
    println(list_negative2)
}



-- Result
[1, -1, 2, -2, 3, -3, 4, -4, 5, -5] // 1
[2, -2, 4, -4, 6, -6, 8, -8, 10, -10] // 2
[-1, 1, -2, 2, -3, 3, -4, 4, -5, 5]  // 3
[false, false, true, true, false, false, true, true, false, false] // 4
[2, -2, 4, -4, 6, -6, 8, -8, 10, -10] // 5
[-1, 1, -2, 2, -3, 3, -4, 4, -5, 5] // 5

1. Immutable list를 생성합니다.

 

2. list에 map을 적용했고 x -> x * 2인 것을 보아 list의 각 요소에 2를 곱한 값들을 list의 형태로 모아 리턴하라는 뜻입니다.

결과를 보면 이해가 가실겁니다.

 

3. list에 map을 적용했고 y -> y * (-1)인 것으로 보아 list의 각 요소에 -1을 곱한 값들을 list로 묶어 return하라는 뜻입니다.

 

4. 단순 계산이 아니라 z -> z % 2 == 0 처럼 'z를 2로 나눈 나머지가 0이다.'라는 조건을 넣어두면 이 조건이 true인지 false인지에 대한 bool 값을 반환합니다.

 

5. filter 함수 때와 마찬가지로 list 각각의 요소를 나타내는 it이라는 키워드를 대신 사용하여 좀 더 간단하게 나타낼 수 있습니다.

 

 

 

 

728x90
반응형

'Kotlin' 카테고리의 다른 글

Kotlin - find, findLast  (0) 2021.03.15
Kotlin - all, any, none  (0) 2021.03.15
Kotlin - filter function  (0) 2021.03.15
Kotlin - Map collection  (0) 2021.03.15
Kotlin - Set  (0) 2021.03.15
Comments