코틀린에서 함수를 정의하는 방법과 기본적인 함수의 특징에 대해 알아보겠습니다.
1. 기본 함수 정의
코틀린에서 함수는 fun 키워드를 사용하여 정의됩니다. 아래는 간단한 함수의 예제입니다.
fun greet(name: String): String {
return "Hello, $name!"
}
- fun: 함수를 정의하는 키워드입니다.
- greet: 함수의 이름입니다.
- (name: String): 매개변수 목록입니다.
- : String: 반환 타입입니다.
- { return "Hello, $name!" }: 함수의 본문입니다.
2. 단일 표현식 함수
함수의 본문이 단일 표현식인 경우 중괄호 {}를 생략할 수 있습니다.
fun greet(name: String): String = "Hello, $name!"
또는 타입 추론을 활용하여 더 간단하게 표현할 수도 있습니다.
fun greet(name: String) = "Hello, $name!"
3. 기본 값이 있는 매개변수
매개변수에 기본 값을 설정하여 선택적으로 사용할 수 있습니다.
fun greet(name: String = "Guest"): String {
return "Hello, $name!"
}
4. 가변 인자 함수
가변 인자를 사용하여 임의의 개수의 인자를 받을 수 있습니다.
fun sum(vararg numbers: Int): Int {
return numbers.sum()
}
5. 고차 함수 (Higher-order Function)
다른 함수를 매개변수로 받거나 함수를 반환할 수 있는 고차 함수를 정의할 수 있습니다.
fun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
return operation(a, b)
}
6. 로컬 함수
함수 내에서 다른 함수를 정의하여 사용할 수 있습니다.
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")
}
7. 익명 함수
익명 함수를 사용하여 함수를 변수에 할당할 수 있습니다.
val square: (Int) -> Int = fun(x: Int): Int {
return x * x
}
8. 확장 함수 (Extension Function)
기존 클래스에 새로운 함수를 추가할 수 있는 확장 함수를 정의할 수 있습니다.
fun String.addExclamation(): String {
return "$this!"
}
이러한 기본 함수 정의 기법들을 활용하여 코드를 간결하고 유지보수 가능하게 만들 수 있습니다. 함수는 코틀린에서 핵심적인 개념 중 하나이며, 함수형 프로그래밍의 특징도 코틀린에서 잘 지원되고 있습니다.
With ChatGPT