들어가기 전에
프로그래밍을 하다 보면 반복 입력하는 코드가 생기기 마련입니다. 이런 경우 반복되는 부분만 따로 떼어 함수로 정의하면 코드를 재사용할 수 있어 유용합니다. 또, 함수를 잘 이용하면 프로그램을 구조적으로 만들 수도 있습니다. 현대 언어의 특징을 많이 가지고 있는 코틀린은 함수를 다양한 형태로 사용할 수 있도록 지원합니다.
먼저 함수의 선언 방법에 대해서 공부해 봅시다.
핵심 키워드
- fun
- 반환 자료형, Unit
- 최상위 함수(Top-level function)
- 지역 함수(Local function), 지역 변수(Local variable)
- 스택(stack)과 스택 프레임
학습하기
함수 정의하기
함수는 정의해 볼까요?
fun 함수 이름([변수 이름: 자료형, 변수 이름: 자료형..] ): [반환값의 자료형] {
표현식...
[return 반환값]
}
모든 함수는 fun이라는 키워드로 시작합니다. 함수 이름은 함수의 역할에 맞게 자유롭게 지으면 됩니다. 매개변수는 콤마(,)와 함께 여러 개를 지정할 수 있고 반드시 콜론(:)과 함께 자료형을 명시해 주어야 합니다. 함수가 반환하는 값이 있다면 반환값의 자료형도 반드시 명시해야 합니다.
함수 정의의 예
fun sum(a: Int, b: Int): Int {
return a + b
}
반환값이 없는 함수
함수의 반환값은 생략될 수 있습니다. 예를 들어 두 인자를 그대로 출력하는 함수는 값을 반환하지 않아도 됩니다. 즉, return문을 생략할 수 있습니다. 대신 반환값의 자료형을 Unit으로 지정하거나 생략해야 합니다.
참고자료
생각해보세요.
정수형 인자의 갯수에 상관없이 받아들인 모든 인자를 모두 더해서 결과를 반환하는 함수를 생각해볼까요? 댓글을 통해 남겨보세요!
comment
fun sum(vararg num: Int): Int = num.sum()
fun main() {
println(sum(1,2,3,4,5,6,7,8,9,10))
}
fun sum(vararg num:Int):Int{
return num.sum()
}