코틀린으로 안드로이드에서 간단한 람다 사용하기

오늘은 안드로이드에서 코틀린으로 작성된 람다를 간단히 알아보려 합니다.

개요

이벤트에 따른 핸들러를 실행하는 것을 추구하는 코드들은 변수에 값을 저장하거나 다른 함수로 넘겨야 될 경우가 많습니다.

이는 람다식을 이용하면 간단하게 코딩할 수 있으며, 이를 이용하면 함수를 선언할 필요가 없고, 코드 블럭 자체를 직접 함수에 전해줄 수 있습니다.

안드로이드 예제

buttonId.setOnClickListener(new OnClickListener (){
    @Override
    public void onClick(View v){
        //code
    }
});

보통 위와 같이 단순한 마우스 클릭 이벤트를 수신받는 이벤트 리스너도 이렇게 중복되는 코드들이 있습니다.

나중에 코드의 양이 늘어나면 다소 복잡해질 수 있습니다.

buttonId.setOnClickListener{ //code 
}

같은 역헐을 하지만 훨씬 간결해졌습니다.

파라미터

val sum = {a:Int, b:Int -> a+b}

파라미터와 식은 같은 중괄호에 있고, 단지 화살표로 구별됩니다.

buttonId.setOnClickListener { it ->
    //code
}

파라미터가 하나밖에 없고 타입을 컴파일러가 바로 추론할 수 있다면 위와같이 it를 명시할 필요는 없습니다.

Written on August 3, 2018