반응형
안녕하세요. 하다블입니다.
오늘은 람다식 함수에 대해 기록해보고자 합니다.
익명 함수, 람다식은 "일급 객체"로서 함수가 갖는 특징 중 하나에 속합니다. 바로, 함수를 변수에 할당할 수 있다는 것입니다. 코틀린의 함수는 일급 객체에 속하며 오늘은 일급 객체에 대해서는 다루지 않으려고 합니다.
기본적으로 람다식의 기본 모양은 다음과 같이 생겼습니다.
{ /* 실행될 문장 */ }
중괄호 안에 간단한 문장이 들어가는 형식입니다. 예시를 들어 설명하겠습니다.
val addFunc = { a:Int,B:Int ->a+b}
val result = addFunc{30,20}
println(result) //50
다음 코드처럼 변수에 함수를 할당해서 사용할 수 있습니다. 이때 addFunc에 들어간 형태를 람다식이라고 합니다.
함수들은 return 할 수 있으니 람다식이 정의되어 있는 변수 역시 return할 수 있습니다.
fun cal(a:Int,B:Int,oper:(Int,Int)->Int):Int{
return oper(a,b)
}
val add={A:Int,B:Int->A+B}
val result=cal{30,10,add}
다음처럼 함수 자체를 return 해줌으로써 중복되는 함수들을 줄일 수 있습니다. 지금은 덧셈으로 한정되어 있지만 변수를 추가하여 덧셈을 할지, 뻴셈을 할 지, 또는 다른 작업을 할 지 결정해서 함수를 return 해줄 수도 있습니다.
fun cal(name:String):(Int,Int)->Int?{
var oper:(Int,Int)->Int)?=null
if(name=="add")
oper={a,b->a+b}
else if(name="subtract")
oper={a,b->a-b}
return oper
}
이런 식으로 String을 받아서 덧셈을 할 지 뻴셈을 할 지 결정한 다음 함수를 return해줄 수도 있습니다.
람다식, 익명 함수라는 것을 익혀서 오늘도 기록해 보았습니다. 최대한 중복되는 함수를 줄일 수 있는 좋은 방법을 익힐 수 있어 좋은 것 같습니다.
더 노력하는 사람이 되겠습니다. 감사합니다.
반응형
'Kotlin_Android 앱 개발 > 코틀린 익히기' 카테고리의 다른 글
05. 숫자 카운트 어플 만들기(1) (0) | 2024.01.25 |
---|---|
04. startActivityForResult를 대체하기 위한 registerForActivityResult (1) | 2024.01.13 |
02. null,래핑,언래핑, 그리고 엘비스 연산자 (0) | 2024.01.06 |
01. viewbinding + 이전 책들과 블로그 내용이 안 되는 이유 (0) | 2024.01.06 |
00. 컴공 3학년이 되어서 이제서야 Kotlin을 공부하는 이유 (2) | 2024.01.02 |