이번 편의 목표: 연체료 계산을 함수로 빼고, 그 함수가 정수를 돌려주게 합니다.

func 뒤에 이름, 매개변수, 반환 타입을 적습니다. 결과를 돌려줄 때는 return을 씁니다. 매개변수와 반환값에는 타입이 필요합니다.

Go
package main

import "fmt"

func overdueFee(days int) int {
	return days * 100
}

func main() {
	fee := overdueFee(3)
	fmt.Println(fee)
}

출력은 300입니다. overdueFee(3)은 3에 100을 곱한 값을 돌려주고, main은 그 값을 출력합니다. 반환 타입이 int인데 return이 없으면 컴파일 오류입니다.

함수에 넘긴 int는 복사됩니다. 함수 안의 days와 main 쪽의 이름은 다른 자리입니다. 호출자가 가진 값을 함수가 바꾸게 하려면 08편의 포인터를 씁니다.

직접 해 보기

main에서 overdueFee(5)를 출력하세요. 결과는 500이어야 합니다.

해설

함수 본문은 바꾸지 않습니다. 인자가 5이면 5 * 100이므로 500입니다.