함수가 파라미터를 받지 않는다고 해도 파라미터를 감싸는 괄호는 꼭 있어야 한다는 점에 유의하자. 예를 들면 다음과 같다.
fun readInt(): Int { return readLine()!!.toInt() } fun main() { println(readInt()) }
자바와 마찬가지로 함수의 결괏값을 return 문으로 지정한다. return 문은 함수 실행을 끝내고 호출한 쪽에 제어를 돌려준다. return 문 다음에 위치한 코드는 실질적으로 죽어있는 코드이며, 결코 실행되지 않는다.
자바 vs. 코틀린 자바와 달리 코틀린에서 도달할 수 없는 코드(unreachable code)는 오류가 아니다. 하지만 컴파일러는 경고를 표시하고 IDE는 해당 부분을 강조해주기 때문에 그림 3-1처럼 코드 중 일부가 죽은 코드임을 쉽게 알 수 있다.
▲ 그림 3-1 도달할 수 없는 코드를 강조한 IDE