본문 바로가기

람다

(3)
코틀린(Kotlin) - 고차 함수 정의 고차 함수 고차 함수는 다른 함수를 파라미터로 받거나 함수를 반환하는 함수입니다. 즉, 람다나 함수 참조를 파라미터로 받거나 람다나 함수 참조를 반환하는 함수입니다. 예를 들면 filter 함수는 Boolean값을 반환하는 람다식을 파라미터로 받고 있기 때문에 고차 함수입니다. list.filter { it > 0 } /* filter 함수 Body */ public inline fun Iterable.filter(predicate: (T) -> Boolean): List { return filterTo(ArrayList(), predicate) } 이 외에도 map, with 등의 여러 고차 함수들을 이미 알고 계실 텐데요, 이제는 그런 고차 함수를 정의하는 방법에 대해 살펴보도록 하겠습니다. 함수 타..
코틀린(Kotlin) - 함수형 인터페이스 활용 코틀린의 람다식을 기존 자바 API에도 사용할 수 있으며, 호환이 가능하기 때문에 이러한 코틀린 람다를 자바 API에 활용하는 방법에 대해서 살펴보겠습니다. 우리는 자바 8 이전까지는 클릭 이벤트 처리를 위해서 아래와 같이 setOnClickListener 메소드에 파라미터로 무명 클래스 인스턴스를 넘겨야만 했습니다. button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { } }); 코틀린에서는 무명 클래스 인스턴스 대신 람다를 넘길 수 있습니다. 물론, 자바에서 처럼 무명 클래스를 사용해도 됩니다. (코틀린의 object 를 사용하면 되겠죠?) /* 코틀린 람다 사용 */ button..
코틀린(Kotlin) - 람다 식과 멤버 참조 코틀린의 람다는 자바8의 람다식과 개념이 매우 비슷합니다. 람다를 쉽게 설명하자면, 값처럼 여기저기 전달할 수 있는 동작의 모음(?)이라고 할 수 있습니다. 기본적으로 람다식은 자바8부터 사용이 가능하고, 안드로이드에서 제대로 된 Functional Interface를 사용하려면 N(Nougat 7.0) OS 이상이어야만 합니다. 하지만, 코틀린에서는 이런 제한과 상관없이 람다식을 사용할 수 있다는게 큰 장점이지 아닐까 싶습니다. 추가로, 람다식은 기본적으로 편리한 Lambda API들을 제공하기 때문에, 안드로이드 스튜디오에서 개발할 때 자동완성 기능을 이용해서 먼저 해당 API를 살펴본다면, 훨씬 더 간결하고 직관적인 코드를 짤 수 있을 것 같습니다. 람다 소개 : 코드 블록을 함수 인자로 넘기기 "..