함수란 일련의 과정에 이름을 붙인 것으로서 코드 중복을 제거해 프로그램의 모듈성(Modularity)을 높일 수 있는 기능이다
함수의 실행이 끝나면 다시 호출했던 지점으로 돌아오며 반환값을 주기도 한다
함수는(Function) == 서브루틴(Subroutine) == 프로시저(Procedure)모두 동의어이다
함수에 () 연산자(Invocation)를 붙이면 함수를 호출할 수 있으며 호출이 되면 함수에 작성된 코드가 전부 실행된다
함수는 헤더(Header)와 바디(Body)로 나뉜다
예시를 들어보자
이때 만들어진 Max함수를 Callee라고 하며, Main함수는 Caller가 된다
이는 호출자와 피호출자라고도 한다
우리는 프로그래밍을 배울 때 입력(Input), 처리(Process), 출력(Output)으로 구분했다
parameter-list 부분을 입력이라 부를 수 있다
body 부분을 처리 영역
return 값을 출력이라 할 수 있다. return은 반환 타입이 void라도 사용할 수 있으며 함수를 끝내는데 활용한다
함수는 반드시 호출되고 있는 구문 전에 정의되어 있을 필요는 없다
상황에 따라 다르지만, 작성하는 함수는 가독성을 위해 가능하면 뒤쪽에 작성한다
함수가 구문 하나일 경우에는 => 연산자로 식 본문 정의(Expression Body Definition)를 할 수 있다
함수는 반드시 출력되고 있는 구문 전에 정의되어 있을 필요는 없다. 상황에 따라 다르지만, 작성하는 함수는 가독성을 위해 가능하면 뒤쪽에 작성한다
함수가 구문 하나일 경우에는 블록을 사용하지 않고도 => 연산자로 식 본문 정의(Expression Body Definition)를 할 수 있다