Kotlin에서 함수는 코드를 모듈화하고 재사용 가능하게 만들어주는 중요한 구성 요소입니다.
함수는 매개변수를 가질 수도, 가지지 않을 수도 있으며, 반환값을 가질 수도, 가지지 않을 수도 있습니다.
이 글에서는 Kotlin 함수의 기본 사용법을 매개변수와 반환값에 따라 구분하여 설명합니다.
함수 정의의 기본 구조
fun functionName(parameters): ReturnType {
// 함수 본문
}
fun
은 함수를 정의할 때 사용하는 키워드입니다.functionName
은 함수의 이름을 지정합니다.parameters
는 함수가 받을 입력값들입니다. 각 매개변수는 이름과 타입을 가질 수 있습니다.ReturnType
은 함수가 반환하는 값의 타입입니다. 반환값이 없으면 생략할 수 있습니다.- 함수 본문은
{}
안에 들어가며, 함수의 로직을 정의합니다.
매개변수와 반환 타입
- 매개변수: 함수가 받는 입력값입니다. 매개변수의 이름과 타입을 지정합니다.
fun add(a: Int, b: Int): Int {
return a + b
}
// 함수 호출
add(5, 3)
이 함수는 두 개의 Int
타입 매개변수를 받아서 Int
타입의 결과를 반환합니다.
- 반환 타입: 함수가 반환할 값의 타입입니다. 반환값이 없으면
Unit
타입이 자동으로 사용됩니다.
fun printMessage() {
println("Hello, World!")
}
이 함수는 값을 반환하지 않으므로 반환 타입을 생략할 수 있습니다.
단일 표현식 함수
함수 본문이 단일 표현식일 때는 중괄호 대신 =
를 사용할 수 있습니다.
이 경우 return
키워드와 중괄호 없이 간결하게 함수를 정의할 수 있습니다.
Kotlin에서는 함수의 본문이 단일 표현식일 경우, 반환 타입을 명시하지 않고도 Kotlin이 자동으로 타입을 추론합니다.
예를 들어, 다음과 같은 함수는 반환 타입을 명시하지 않더라도 Kotlin이 타입을 자동으로 추론합니다:
fun add(a: Int, b: Int) = a + b
디폴트 매개변수 값
매개변수에 기본값을 제공할 수 있어, 호출 시 값을 생략할 수 있습니다.
fun greet(name: String = "Guest") {
println("Hello, $name!")
}
이 함수는 name
이 주어지지 않으면 기본값 “Guest”를 사용합니다.
※ 코틀린에서 문자열 내에 변수를 포함시키려면 ${}
구문을 사용합니다. 그러나 간단한 변수는 그냥 $
기호로도 직접 사용할 수 있습니다.