본문 바로가기
WebDev

Kotlin에서 함수 및 람다

by dev-woo 2023. 3. 26.
반응형

안녕하세요 연봉 1억 개발자 dev-woo 입니다.

Kotlin은 Java와 같은 객체 지향 프로그래밍 언어입니다. 하지만 Java보다 더 간결하고 실용적인 문법과 많은 기능을 제공해줍니다. Kotlin은 Android 앱을 개발하는 데 매우 적합하며, 모바일 앱, 서버 애플리케이션 등 많은 분야에서 사용됩니다. 이번 블로그에서는 Kotlin에서 함수와 람다에 대해 알아보겠습니다.

함수 (Functions)

Kotlin에서 함수를 정의하는 방법은 Java에서와 유사합니다. 하지만 Kotlin에서는 기본 매개 변수, 이름 붙인 인수, 표현식 본문 등 다양한 기능을 제공합니다.

함수 정의

fun functionName(arg1: type1, arg2: type2) : returnType {
    // function body
}

위의 코드에서 fun은 Kotlin에서 함수를 정의하는 키워드입니다. 함수의 이름은 functionName이며, 인수로 arg1arg2가 있습니다. 이 함수는 returnType으로 값을 반환합니다.

매개 변수와 기본 값

Java에서와 마찬가지로 Kotlin에서도 매개 변수를 사용할 수 있습니다. Kotlin에서는 매개 변수에 기본 값을 지정할 수 있습니다.

fun greet(name: String = "World") {
    println("Hello, $name!")
}

fun main() {
    greet() // Hello, World!
    greet("John") // Hello, John!
}

위의 코드에서 greetname이라는 매개 변수를 가집니다. 기본 값이 "World"이지만, greet("John")과 같이 호출할 경우 "John"으로 대체됩니다.

이름 붙인 인수

Java에서도 이름 붙인 인수를 사용할 수 있지만, Kotlin에서는 좀 더 간결하게 구현할 수 있습니다.

fun person(firstName: String, lastName: String, age: Int) {
    println("$firstName $lastName - $age years old")
}

fun main() {
    person(lastName = "Doe", firstName = "John", age = 30)
}

위의 코드에서 person 함수는 firstName, lastName, age 매개 변수를 가지며, main 함수에서는 매개 변수 이름을 명시하여 호출합니다.

표현식 본문

Kotlin에서는 함수의 본문을 단일 표현식으로 구현할 수 있습니다.

fun sum(a: Int, b: Int) = a + b

위의 코드에서 sum 함수는 ab라는 매개 변수를 가지며, a + b라는 단일 표현식으로 값을 반환합니다.

람다 (Lambdas)

람다는 함수형 프로그래밍에서 자주 사용됩니다. Kotlin에서는 람다를 함수와 동일한 방법으로 정의할 수 있습니다. 람다는 변수에 할당하거나 다른 함수에서 매개 변수로 사용할 수 있습니다.

람다 정의

val sum = { x: Int, y: Int -> x + y }

위의 코드에서 sum 변수는 { x: Int, y: Int -> x + y } 라는 람다를 가집니다. 이 람다는 두 개의 Int 매개 변수를 가지며, 이 두 값을 더하여 반환합니다.

람다 사용

fun main() {
    val numbers = listOf(1, 2, 3, 4, 5)
    val newNumbers = numbers.map { it * 2 }
    println(newNumbers) // [2, 4, 6, 8, 10]
}

위의 코드에서 numbers는 숫자 리스트이며, map 함수를 사용하여 각 값을 두 배로 만듭니다. 람다 { it * 2 } 는 각 숫자를 받아 두 배로 만들어 반환합니다.

람다와 고차 함수

Kotlin에서는 함수를 다른 함수의 매개 변수로 전달하는 고차 함수를 지원합니다. 고차 함수는 매개 변수로 람다를 전달하며, 람다는 이 함수에서 실행됩니다.

fun calculate(x: Int, y: Int, operation: (Int, Int) -> Int) : Int {
    return operation(x, y)
}

fun main() {
    val result = calculate(10, 5, { a, b -> a * b })
    println(result) // 50
}

위의 코드에서 calculate 함수는 x, y, operation이라는 매개 변수를 가집니다. operation 매개 변수는 두 개의 Int 값을 받고 Int 값을 반환하는 람다입니다.

람다를 사용할 때, 코드의 가독성을 높이기 위해 더욱 간결한 문법을 사용할 수 있습니다.

val result = calculate(10, 5) { a, b -> a * b }

위의 코드에서는 calculate 함수 호출 시 람다 표현식이 괄호 밖에 지정됩니다.

결론

위에서 살펴본 것처럼, Kotlin에서는 함수와 람다에 다양한 기능을 추가하여 좀 더 쉽게 프로그래밍할 수 있습니다. Kotlin의 실용적이고 간결한 문법과 다양한 기능들은 개발자들이 더욱 빠르게 애플리케이션을 구현할 수 있도록 도와줍니다. 함수와 람다를 올바르게 사용하면 더욱 효율적인 코드를 작성할 수 있습니다.

반응형

댓글