람다 3

코틀린 - 고차 함수: 파라미터와 반환 값으로 람다 사용 (요약)

8장 고차 함수: 파라미터와 반환 값으로 람다 사용 (요약) - 함수 타입을 사용해 함수에 대한 참조를 담는 변수나 파라미터나 반환 값을 만들 수 있다.- 고차 함수는 다른 함수를 인자로 받거나 함수를 반환한다. 함수의 파라미터 타입이나 반환 타입으로 함수 타입을 사용하면 고차 함수를 선언할 수 있다.- 인라인 함수를 컴파일할 때 컴파일러는 그 함수의 본문과 그 함수에게 전달된 람다의 본문을 컴파일한 바이트코드를 모든 함수 호출 지점에 삽입해준다. 이렇게 만들어지는 바이트코드는 람다를 활용한 인라인 함수 코드를 풀어서 직접 쓴 경우와 비교할 때 아무 부가 비용이 들지 않는다.- 고차 함수를 사용하면 컴포넌트를 이루는 각 부분의 코드를 더 잘 재사용할 수 있다. 또 고차 함수를 활용해 강력한 제네릭 라이브..

Dev/Kotlin 2018.10.17

코틀린 - 람다로 프로그래밍(요약)

5장 람다로 프로그래밍 - 람다를 사용하면 코드 조각을 다른 함수에게 인자로 넘길 수 있다.- 코틀린에서는 람다가 함수 인자인 경우 괄호 밖으로 람다를 빼낼 수 있고, 람다의 인자가 단 하나뿐인 경우 인자 이름을 지정하지 않고 it 이라는 디폴트 이름으로 부를 수 있다.- 람다 안에 있는 코드는 그 람다가 들어있는 바깥 함수의 변수를 읽거나 쓸 수 있다.- 메소드, 생성자, 프로퍼티의 이름 앞에 ::을 붙이면 각각에 대한 참조를 만들 수 있다. 그런 참조를 람다 대신 다른 함수에게 넘길 수 있다.- filter, map, all, any 등의 함수를 활용하면 컬렉션에 대한 대부분의 연산을 직접 원소를 이터레이션하지 않고 수행할 수 있다.- 시퀀스를 사용하면 중간 결과를 담는 컬렉션을 생성하지 않고도 컬렉..

Dev/Kotlin 2018.09.27

5장 람다로 프로그래밍

코틀린 람다 적용하기 1. 일반적인 루프 사용해서 컬렉션 검색@Test fun addition_isCorrect() { val people = listOf(Person("Dev", 33), Person("Dave", 32), Person("Dori", 31)) findTheOldest(people) } data class Person(val name: String, val age: Int) // 연장자 찾기 fun findTheOldest(people: List) { var maxAge = 0 var theOldest: Person? = null for (person in people) { if (person.age > maxAge) { maxAge = person.age theOldest = perso..

Dev/Kotlin 2018.05.28