이 글은 골든래빗 《Tucker의 Go 언어 프로그래밍》의 07장 써머리입니다.
07 함수
7.1 함수 정의
- 함수는 함수 키워드, 함수명, 매개변수, 반환타입, 함수 코드 블록 으로 구성된다.
7.2 함수를 호출하면 생기는 일
- 함수를 호출할 때 입력하는 값을 argument라고 하며, 외부로부터 입력받는 변수를 parameter라고 부른다.
- 아래 그림과 같이 인수를 매개변수에 복사하고 반환하는 값은 함수가 호출된 곳을 대체한다.
핵심포인트
인수는 매개변수로 복사된다. 매개변수와 함수 내에서 선언된 변수는 함수가 종료되면 변수 범위를 벗어나서 접근하지 못한다.
7.3 함수는 왜 쓰나?
- 반복 사용되는 코드를 묶을 수 있다.
- 중복 코드를 제거하여 코드를 간결하게 만들 수 있다.
7.3.1 멀티 반환 함수
- Golang은 값을 여러 개 반환할 수 있다.
func MultiReturns(a, b int) (int, error) {
if a + b < 0 {
return -1, errors.New("홀수입니다.")
}
return a + b, nil
}
7.3.2 변수명을 지정해 반환하기
- 함수 선언부에 반환 타입과 함께 변수명을 지정하면 return문으로 해당 변수를 반환할 수 있다.
func MultiReturns(a, b int) (num int, err error) {
if a + b < 0 {
err = errors.New("홀수입니다.")
return
}
num = a + b
return
}
7.4 재귀 호출
- 함수 안에서 자기 자신 함수를 다시 호출하는 것
- 재귀는 탈출조건을 정해야 탈출이 가능함~