PHpullh
학습 라이브러리/Kotlin/함수 선언 & 기본값 & Named Argument

KOTLIN · 함수

함수 선언 & 기본값 & Named Argument

기본값 파라미터로 오버로딩을 줄이고, Named Argument로 호출 가독성을 높입니다.

함수입문default-paramnamed-argumentvarargspread

핵심 설명

기본값 파라미터로 오버로딩을 줄이고, Named Argument로 호출 가독성을 높입니다.

Kotlin code

// 기본 함수
fun add(a: Int, b: Int): Int {
    return a + b
}

// 단일 표현식 함수 (타입 추론)
fun square(n: Int) = n * n

// 기본값 파라미터
fun greet(
    name: String,
    prefix: String = "안녕하세요",
    suffix: String = "님!"
) = println("$prefix, $name$suffix")

fun main() {
    greet("Kotlin")                    // 안녕하세요, Kotlin님!
    greet("Java", "Hello")             // Hello, Java님!

    // Named argument — 순서 무관, 명확한 호출
    greet(
        name = "Go",
        suffix = "!",
        prefix = "Hi"
    )

    // vararg
    fun sum(vararg nums: Int) = nums.sum()
    println(sum(1, 2, 3, 4, 5))        // 15

    // spread operator (배열 → vararg)
    val arr = intArrayOf(1, 2, 3)
    println(sum(*arr))
}

학습 팁

Java에서 Kotlin 기본값 함수를 호출할 때는 모든 인자를 넣어야 합니다. @JvmOverloads 어노테이션을 추가하면 Java용 오버로딩 메서드가 자동 생성됩니다.

주의할 점

기본값 파라미터가 중간에 있으면 Named argument 없이는 뒤 파라미터를 전달하기 어렵습니다. 기본값 파라미터는 뒤쪽에 배치하세요.

자주 묻는 질문

함수 선언 & 기본값 & Named Argument란 무엇인가요?

기본값 파라미터로 오버로딩을 줄이고, Named Argument로 호출 가독성을 높입니다.

함수 선언 & 기본값 & Named Argument 학습 시 주의할 점은 무엇인가요?

기본값 파라미터가 중간에 있으면 Named argument 없이는 뒤 파라미터를 전달하기 어렵습니다. 기본값 파라미터는 뒤쪽에 배치하세요.