본문 바로가기
코틀린

코틀린 함수

by 몽크K 2024. 1. 17.
728x90

함수는 프로그래밍에서 기능을 수행하는 블록 또는 코드 조각입니다. 함수는 특정 작업을 수행하고 값을 반환할 수 있습니다. 이를 통해 코드를 모듈화하고 재사용 가능한 조각으로 나누어 프로그램을 구성할 수 있습니다.

코틀린에서 함수의 기본 구조는 다음과 같습니다:

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()
}

이러한 다양한 함수 유형을 통해 코틀린은 코드를 더 모듈화하고 가독성을 높이는 동시에 간결하고 효과적인 프로그래밍을 지원합니다.

728x90

'코틀린' 카테고리의 다른 글

코틀린 반복문 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

댓글