함수는 프로그래밍에서 기능을 수행하는 블록 또는 코드 조각입니다. 함수는 특정 작업을 수행하고 값을 반환할 수 있습니다. 이를 통해 코드를 모듈화하고 재사용 가능한 조각으로 나누어 프로그램을 구성할 수 있습니다.
코틀린에서 함수의 기본 구조는 다음과 같습니다:
fun 함수이름(매개변수1: 타입1, 매개변수2: 타입2, ...): 반환타입 {
// 함수 내용
return 반환값
}
함수는 호출될 때마다 정의된 작업을 수행하고, 필요에 따라 매개변수를 전달하고 결과값을 반환합니다.
- fun: 함수를 정의하는 키워드입니다.
- 함수이름: 함수의 이름을 지정합니다.
- (매개변수1: 타입1, 매개변수2: 타입2, ...): 함수의 매개변수를 정의합니다.
- : 반환타입: 함수가 반환하는 값의 타입을 지정합니다. 반환값이 없는 경우 Unit을 사용합니다.
간단한 덧셈 함수의 예시를 통해 살펴보겠습니다:
fun addNumbers(a: Int, b: Int): Int {
return a + b
}
// 함수 호출
val result = addNumbers(5, 3)
println("덧셈 결과: $result")
이 함수는 두 개의 정수를 매개변수로 받아 덧셈을 수행하고, 그 결과를 반환합니다. 함수는 addNumbers(5, 3)과 같이 호출되어 사용됩니다.
다양한 함수의 사용법
1. 일반 함수 (Regular Functions):
가장 기본적인 함수 유형으로, 입력을 받아서 결과를 반환하는 역할을 합니다.
fun add(a: Int, b: Int): Int {
return a + b
}
2. 기본 매개변수 (Default Arguments):
매개변수에 기본 값을 지정하여 함수를 호출할 때 해당 매개변수를 생략할 수 있습니다.
fun greet(name: String = "Guest"): String {
return "Hello, $name!"
}
3. 확장 함수 (Extension Functions):
기존 클래스에 새로운 함수를 추가할 수 있습니다.
fun String.addExclamation(): String {
return "$this!"
}
// 사용 예시
val greeting = "Hello".addExclamation()
4. 단일 표현식 함수 (Single-Expression Functions):
함수가 단일 표현식으로 이루어져 있다면 중괄호를 생략하고 한 줄로 표현할 수 있습니다.
fun multiply(a: Int, b: Int): Int = a * b
5. 반환 타입 생략 (Type Inference):
코틀린은 반환 타입을 생략할 수 있으며, 컴파일러가 자동으로 유추합니다.
fun add(a: Int, b: Int) = a + b
6. 가변 인자 함수 (Varargs Functions):
가변 개수의 인자를 받을 수 있는 함수입니다.
fun sum(vararg numbers: Int): Int {
return numbers.sum()
}
// 사용 예시
val total = sum(1, 2, 3, 4, 5)
7. 고차 함수 (Higher-Order Functions):
다른 함수를 매개변수로 받거나 함수를 반환할 수 있는 함수입니다.
fun operateNumbers(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
return operation(a, b)
}
// 사용 예시
val result = operateNumbers(10, 5) { x, y -> x + y }
8. 중첩 함수 (Nested Functions):
하나의 함수 내에서 또 다른 함수를 정의할 수 있습니다.
fun calculate(a: Int, b: Int): Int {
fun add() = a + b
return add()
}
이러한 다양한 함수 유형을 통해 코틀린은 코드를 더 모듈화하고 가독성을 높이는 동시에 간결하고 효과적인 프로그래밍을 지원합니다.
'코틀린' 카테고리의 다른 글
코틀린 반복문 do-while (0) | 2024.01.15 |
---|---|
코틀린 반복문 while문 (0) | 2024.01.15 |
코틀린 반복문 for문 (0) | 2024.01.11 |
코틀린 조건문 if (0) | 2024.01.10 |
코틀린 변수 (0) | 2024.01.10 |