람다함수의 정의와 사용방법
람다함수는 코틀린 이외의 많은 프로그래밍 언어에서 제공하는 익명 함수 정의 기법입니다.
람다함수를 이용하는 이유는 코드의 간결성과 가독성을 위해서입니다.
아래에 정의한 sum 함수는 일반적인 함수 정의 방법을 이용한 것입니다. 세 줄의 코딩이 필요합니다.
이에 반해 sum2 함수는 람다함수로 선언한 것입니다. 한 줄로 함수정의가 끝납니다. sum2 는 정수 2개를 input 으로 받아서 정수를 반환하며 산식은 no1+no2 로 정의된다고 작성한 것입니다.
변수추론 기능을 이용하면 이를 sum3 의 형태로 조금 더 간단히 작성할 수 있습니다.
세 가지 방법 모두 결과값은 3으로 동일합니다.
println 함수를 람다식 안쪽으로 집어넣어서 조금 더 코드를 간결하게 만들 수 있습니다.
정의된 sumAndPrint 함수는 정수 두 개를 입력받고 반환값이 따로 없으며(Unit), no1+no2 를 화면에 출력하도록 되어 있습니다. sumAndPrint2 함수는 이를 조금 더 간결하게 작성한 것입니다.
결과는 동일하게 3이 출력됩니다.
람다함수의 it
람다함수에서 매개변수가 하나인 경우 따로 변수명을 지정하지 않고 it 으로 지칭할 수 있습니다. 특정한 정수의 제곱을 구하기 위한 함수를 아래의 두 가지 형태로 구현 가능한데, 첫 번째 함수인 square 의 정의를 보면 특별히 매개변수명을 지정하지 않고 it 이라는 이름을 사용해 보았습니다.
고차함수
고차함수는 함수를 매개변수로 전달받거나 반환하는 함수를 의미하며, 람다함수는 고차함수와 함께 사용될 때에 더욱 유용합니다. 고차함수를 사용하면 코드의 재사용성, 유용성 및 가독성이 좋아집니다.
다음의 printResult 함수는 연산의 결과를 화면에 출력해주는 함수이며, 정수 하나와 operation 이라는 람다표현식을 input 으로 받도록 했습니다. 이를 통해 x+2, x*3, x*x 처럼 다양한 연산에 대하여 이 함수를 재사용할 수 있습니다.
'왕초보 안드로이드 앱 개발 도전기' 카테고리의 다른 글
8. Unit 2 project: Art Space (아트 갤러리, 이미지 뷰어) (0) | 2024.06.26 |
---|---|
6. Unit 2 practice: click behavior - lemonade (0) | 2024.06.21 |
5. Kotlin 클래스(class) (0) | 2024.06.20 |
4. Kotlin 조건문 (0) | 2024.06.19 |
3. Unit 1 연습문제 (0) | 2024.06.18 |