Android

[Kotlin] 코틀린 - 람다함수

귀뚜래미 2024. 8. 2. 17:08
728x90

람다함수

- 람다함수는 fun 키워드를 사용하지 않고 중괄호 {}로 표현한다

- {}안에 화살표 -> 가 있어 화살표 왼쪽은 매개변수, 오른쪽은 함수 본문으로 사용한다

- 람다함수에는 return문이 존재하지 않고 함수 본문의 마지막 줄 내용이 리턴값이다

- 람다함수는 함수 이름이 없어 변수명으로 호출한다

- 매개변수가 없는경우 화살표와 오른쪽에 함수 본문만 적고, 화살표도 생략 가능하다

// 일반적인 함수 선언
fun normalFunc(num1: Int, num2: Int): Int{
    return num1 + num2
}

// 람다함수 선언
val lambda = {num1: Int, num2: Int -> num1 + num2}

// 매개변수가 1개인 람다함수에 (자료형) -> Unit, it 키워드 사용
val oneParam: (Int) -> Unit = { println(it)}

fun main(){
    println(normalFunc(1,2))    // 3
    println(lambda(1,2))    // 3
    println(oneParam(3))    // 3
}

 

 

typealias

- 타입의 별칭을 선언할 수 있다.

- typealias를 통해 매개변수를 미리 지정해놓기 때문에 함수 선언 시 타입을 명시하지 않아도 무관하다

typealias customType = (String, String) -> Boolean

fun main(){
    // typealias 사용 예시
    val isEqual1: customType = {str1: String, str2: String -> str1.equals(str2)}
    // 함수 선언 시 매개변수 타입 생략 예시
    val isEqual2: customType = {str1, str2 -> str1.equals(str2)}

    println(isEqual1("abc", "abcd")) // false
    println(isEqual2("abc", "abc")) // true
}
728x90