컬렉션과 람다
어떤 형태의 람다 표현식이 필요한 지 생성
컬렉션은 데이터의 모임 : 배열(Array), 리스트(List), Set
Map 은 수행 되는 것도 있고 안되는 것도 있다.
fun main(args:Array<String>){
val ar = arrayOf<Int>(20, 30, 17, 22)
// 일반적인 람다 표현식을 대입
ar.forEach({n:Int -> println(n)})
// 매개 변수가 1개 이면 매개변수를 생략하고 it를 사용 가능
ar.forEach({println(it)})
// 람다 표현식이 함수의 마지막 매개 변수라면 () 외부에 작성 가능
ar.forEach{println(it)}
// forEachIndexed
// 2개의 매개 변수를 갖고 리턴이 Unit인 람다 표현식을 대입
// 첫번째 매개 변수는 데이터의 인덱스이고
// 두번째 매개 변수는 데이터 입니다.
ar.forEachIndexed { index, i -> println(index * i) }
}
1. forEach
컬렉션의 데이터를 순회하면서 함수를 실행
컬렉션의 자료형 1개를 매개 변수로 받고 Unit을 리턴하는 함수가 대입
> 매개 변수가 컬렉션의 데이터를 순서대로 대입 받습니다.
{Int -> Unit}
2. all, any, none
람다 표현식을 대입받아서 순회하면서 실행한 후 결과를 Ture 나 False로 리턴
대입 되는 람다는 매개변수가 1 개이고 Boolean 을 리턴하는 형태
all 은 모든 데이터가 True로 리턴하면 True 그렇지 않으면 False를 리턴
any 는 데이터 중 한 개 라도 True 를 리턴하면 True 그렇지 않으면 False를 리턴
none 은 모든 데이터가 False로 리턴하면 True 그렇지 않으면 False를 리턴
3. count, find
count 는 True를 리턴한 데이터의 개수를 리턴
find 는 True 를 리턴한 첫번째 데이터를 리턴
대입 되는 람다는 매개 변수가 1개이고 Boolean을 리턴하는 형태
4. max(), min()
매개 변수 없이 호출해서 가장 큰 데이터와 가장 작은 데이터를 리턴
5. maxBy(), minBy()
매개 변수가 1개이고 리턴이 있는 표현식을 대입 받아서 리턴 값이 가장 큰 데이터나 작은 데이터를 리턴
6. SumBy()
매개 변수가 1개이고 리턴이 있는 표현식을 대입 받아서 리턴 되는 데이터의 합계를 리턴
7. Kotlin은 문자열도 크기 비교가 가능
'kotlin' 카테고리의 다른 글
코틀린 : Collection 과 람다, 정렬 (0) | 2020.10.21 |
---|---|
코틀린: 컬렉션과 람다 (0) | 2020.10.20 |
코틀린 : Inline 함수 (0) | 2020.10.20 |
코틀린 : 함수형 프로그래밍 (0) | 2020.10.20 |
코틀린 : anonymous class, Companion, Singleton (0) | 2020.10.19 |