본문 바로가기

Kotlin

[Kotlin] 람다 표현식

fun sum (x1 : Int, x2 : Int) : Int {
    return x1 + x2
}

fun Calculator(a : Int, b : Int, p : (Int, Int) -> Int) {
    println("$a , $b -> ${p(a,b)}")
}

fun Square( a:Int, p : (Int) -> (Int)) {
    println("$a, ${p(a)}")
}

fun printInfo(p : () -> Unit) {
    print("Calcuator version : ")
    p()
}

fun main() {
    // 기본적인 호출 방식
    Calculator(2,1, { c : Int, d : Int -> c + d})

    // 타입 추론이 가능하다면 자료형을 생략 가능
    Calculator(2,1, { c, d -> c + d})

    // 람다식이 파라미터 맨 마지막이라면 함수 밖으로 람다 분리 가능
    Calculator(2, 1) { a, b -> a - b }
    // 람다 구문에 함수를 넣을 때은 :: 키워드를 사용
    Calculator(2,5, ::sum)

    // 기본적인 호출 방식
    Square(2, {a -> a* a})
    // 람다식이 파라미터 맨 마지막이라면 함수 밖으로 람다 분리 가능
    Square(2) { a -> a* a}

    // 람다식의 인자가 한개라면 인자를 생략할 수 있다.
    Square(2) { it * it}

    // 기본 함수 호출 법
    printInfo({println("1.0")})
    // 마지막 파라미터가 람다식이기 때문에 괄호 밖으로 람다를 분리
    printInfo() { println("1.0")}
    // 만약 파라미터가 람다식 한개만 있다면 괄호도 생략 가능
    printInfo { println("1.0") }
}

'Kotlin' 카테고리의 다른 글

[Kotlin] Scope Functions (let, with, run, apply, also)  (0) 2022.01.19
[Kotlin] 개발노트  (0) 2022.01.13
[Kotlin][Kotlin in action] 1. 코틀린이란?  (0) 2020.11.25