[Kotlin] 람다식

Jiyoon Chae·2021년 11월 7일
0

Kotlin

목록 보기
1/5
  • 코틀린에서는 함수를 일급 객체로 다룸
  • 일급 객체란 변수에 함수를 할당할 수 있다는 것을 의미.
  • 람다식은 중괄호 안에 실행 코드가 들어간 익명 함수라 할 수 있음.
<형식>람다식의 기본 모양
{<실행될 문장>}

ex)
{x,y -> x+y}

더하기 함수의 람다식 변형

  • 람다식은 중괄호 안에 → 넣음
  • 화살표 왼쪽은 파라미터, 오른쪽은 실행코드!
  • 람다식에는 함수의 이름이 없음. (어차피 변수에 할당되므로 이름 필요x)
  • 한 줄짜리 코드에서는 return코드가 생략될 수 있음.
//원래의 함수
fun add(a:Int, b:Int) :Int {
	return a+b
}

//람다식으로 변형된 함수
val addFunc = {a:Int, b:Int -> a+b }

파라미터가 복잡해 질 수 있음 ( 파라미터로 함수를 보낼 수 있기 때문)

함수를 호출할 때 함수를 파라미터로 전달하기

: 람다식으로 된 익명함 수를 다른 함수의 파라미터로 전달할 수 있음

매개변수로 람다식 사용매개변수로 람다식 사용

fun main() {
	val addFunc = {a:Int, b:Int -> a+b}
	val result = calc(15,10, addFucn)
println(result)
}

fun calc(first:Int, second:Int, oper:(Int,Int) -> Int):Int {
		return oper(first,second)
}

리턴값으로 람다식 함수 사용

fun main(){
	val addFunc = {a:Int, b:Int -> a+b}
    val result = calc(15, 10, addFunc)
    
    val addFunc2 = getOperator("add")  //반환된 함수가 addFucn2변수상자에 들어감.
    val result2 = calc(20,29, addFunc2!!)
	println(result2)
}

fun getOperator(name:String):((Int,Int)->Int)?{
	//함수가 밑으로 반환   
	var oper:((Int,Int)->Int)? = null
    if(name == "add"){
        oper = {a:Int, b:Int -> a+b}
    }else if(name =="subtract"){
        oper = {a:Int, b:Int -> a-b}
    }
	
    return oper
}

fun calc(first:Int, second:Int, oper:(Int,Int)->Int):Int{
    
    return oper(first, second)
    
}
profile
바닐라라떼 좋아☕

0개의 댓글