Kotlin/포스팅

코틀린 함수

짜집퍼박사(짜박) 2023. 12. 10. 02:20

코틀린에서 함수는 일급 시민(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