안녕하세요 연봉 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
이며, 인수로 arg1
과 arg2
가 있습니다. 이 함수는 returnType
으로 값을 반환합니다.
매개 변수와 기본 값
Java에서와 마찬가지로 Kotlin에서도 매개 변수를 사용할 수 있습니다. Kotlin에서는 매개 변수에 기본 값을 지정할 수 있습니다.
fun greet(name: String = "World") {
println("Hello, $name!")
}
fun main() {
greet() // Hello, World!
greet("John") // Hello, John!
}
위의 코드에서 greet
는 name
이라는 매개 변수를 가집니다. 기본 값이 "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
함수는 a
와 b
라는 매개 변수를 가지며, 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의 실용적이고 간결한 문법과 다양한 기능들은 개발자들이 더욱 빠르게 애플리케이션을 구현할 수 있도록 도와줍니다. 함수와 람다를 올바르게 사용하면 더욱 효율적인 코드를 작성할 수 있습니다.
'WebDev' 카테고리의 다른 글
코틀린에서의 인터페이스와 추상 클래스 (0) | 2023.03.26 |
---|---|
코틀린에서의 상속 및 다형성 (0) | 2023.03.26 |
코틀린에서의 제어 흐름과 반복문 (0) | 2023.03.26 |
코틀린(Kotlin) 기초 구문 (0) | 2023.03.26 |
대규모의 소프트웨어 엔지니어를 해고 하더라도 기업은 살아남을 수 있을까? (2) | 2023.03.20 |
댓글