Lamda

베짱이·2022년 7월 3일
0

Kotiln

목록 보기
3/4

람다란?(Lamda)

람다식은 우리가 마치 value처럼 다룰 수 있는 익명 함수이다.

1) 메소드의 파라미터로 넘겨줄 수 있다.
2) return 값으로 사용할 수 있다.

람다의 기본 정의

val lamdaName : Type = {argumentList -> codeBody}

람다 기본 문법

//기본 형식
val square : (Int) -> (Int) = {number -> number*number}
//자료형 선언 
val square = {number : Int -> number*number}
//에러
val square = {number -> number*number}

fun main() {
    println(square(12))
}

코틀린은 자동으로 자료형 추론이 가능하나, 한 쪽에는 무조건 써줘야 한다.

val namgeAge = {name : String, age:Int ->
"my name ${name} I'm ${age}"}

fun main() {
    println(namgeAge("gyoung",21))
}

람다는 무조건 맨 마지막 줄이 return된다.

//람다의 return
val calcul : (Int) -> String = {
    when(it){
        in 0..40 -> "fail"
        in 41..70 -> "pass"
        in 71..100 -> "perfect"
        else -> "Error!"
    }
}

여기서 else가 없다면 에러가 난다. 위에 람다식은 무조건 String을 반환해야 하기 때문에 0~100사이 값이 아닌 값을 넣게 되면 else문을 실행해 String을 반환해야 한다.

fun a(lamda : (Double) -> Boolean) : Boolean {
    return lamda(5.2343)
}

fun main() {  
    val lamda = {number : Double ->
    number == 4.123123
    }
    println(a(lamda))
    println(a({it>3.22})) // a {it>3.22}
}
profile
하루는 개발만 하기에는 너무 길다.

0개의 댓글