더북(TheBook)

2.7.1 함수 선언하기

코틀린에서는 프로퍼티와 마찬가지로 함수도 패키지 수준이나 클래스, 객체 내부에 정의할 수 있다. 함수를 선언할 때는 fun이라는 키워드를 사용한다.

fun add(a: Int, b: Int): Int {
    return a + b
}

함수 본문을 한 줄로 표현할 수 있으면 중괄호({})로 묶은 블록을 다음과 같은 구문으로 대치할 수 있다.

fun add(a: Int, b: Int): Int = a + b

이런 형태를 식 구문(expression syntax)이라고 부른다. 식 구문을 사용할 때는 식에서 추론할 수 있는 반환 타입을 생략해도 된다.

fun add(a: Int, b: Int) = a + b

블록 구문과 식 구문을 혼용하면 예기치 못한 결과를 낳을 수 있음에 주의하라. 다음 예제는 잘못된 코드가 아니다.

fun add(a: Int, b: Int) = {
    a + b
}

하지만 이 함수의 반환 타입은 여러분이 예상하는 타입과 다르다. 이에 관해서는 다음 장에서 설명한다. 이런 예제에서 (이 예제에서는 return을 사용하지 않지만) 반환 타입을 명시하면 컴파일러가 여러분에게 오류를 알려줄 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.