코틀린에서 함수는 일급 시민(first-class citizen)으로 취급되며, 매우 강력하고 유연한 특징을 가지고 있습니다. 여기서는 코틀린에서 함수를 정의하고 사용하는 방법에 대해 알아보겠습니다.
1. 기본 함수 정의
fun sum(a: Int, b: Int): Int {
return a + b
}
- fun: 함수를 정의하는 키워드입니다.
- sum: 함수의 이름입니다.
- (a: Int, b: Int): 매개변수 목록입니다.
- : Int: 반환 타입입니다.
- { return a + b }: 함수의 본문입니다.
2. 단일 표현식 함수
본문이 싱글 표현식인 경우 중괄호를 생략할 수 있습니다.
fun sum(a: Int, b: Int): Int = a + b
3. 타입 추론
타입이 명시되지 않은 경우 코틀린은 표현식을 기반으로 타입을 추론합니다.
fun sum(a: Int, b: Int) = a + b
4. 기본 값이 있는 매개변수
fun greet(name: String = "Guest") {
println("Hello, $name!")
}
매개변수에 기본 값을 설정할 수 있습니다.
5. 가변 인자 함수
fun sum(vararg numbers: Int): Int {
return numbers.sum()
}
- vararg: 가변 인자를 나타내며, 배열로 매핑됩니다.
6. 고차 함수 (Higher-order Function)
fun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
return operation(a, b)
}
함수를 매개변수로 받거나 함수를 반환할 수 있습니다.
7. 익명 함수와 람다식
val square: (Int) -> Int = { x -> x * x }
변수에 람다식을 할당할 수 있습니다.
val sum = { a: Int, b: Int -> a + b }
타입이 명시되지 않은 경우에도 람다식을 사용할 수 있습니다.
8. 고차 함수 사용 예시
fun main() {
val result = operate(5, 3) { a, b -> a + b }
println("Result: $result")
}
9. 로컬 함수
fun calculate() {
fun add(a: Int, b: Int): Int = a + b
fun subtract(a: Int, b: Int): Int = a - b
val result = add(10, 5) + subtract(20, 8)
println("Result: $result")
}
함수 내에서 다른 함수를 정의할 수 있습니다.
10. 확장 함수 (Extension Function)
fun String.addExclamation(): String {
return "$this!"
}
기존 클래스에 새로운 함수를 추가할 수 있습니다.
val greeting = "Hello"
val excitedGreeting = greeting.addExclamation()
println(excitedGreeting) // 출력: Hello!
이렇게 다양한 형태의 함수 정의와 사용이 가능하며, 함수는 코틀린에서 매우 중요한 개념 중 하나입니다. 함수형 프로그래밍과 관련된 특징들도 함께 활용할 수 있습니다.
With ChatGPT
'Kotlin > 포스팅' 카테고리의 다른 글
코틀린 단일 표현식 함수 (0) | 2023.12.16 |
---|---|
기본적인 함수의 특징 (0) | 2023.12.13 |
코틀린 배열 사용 (0) | 2023.12.10 |
코틀린 가변 배열 (0) | 2023.12.10 |
코틀린 배열 정의 (0) | 2023.12.10 |