func Add(a int, b int) int {
return a + b
}
func
키워드를 사용해서 함수 정의를 알리고 그 뒤에 함수명이 온다. 첫글자가 대문자인 함수는 패키지 외부로 공개되는 함수이다. 그 다음으로 소괄호 안에 매개변수를 넣는다. 필요하지 않으면 비워둔다. 그리고 반환타임이 온다. 반환하는 값이 없으면 비워둔다. 그리고 중괄호로 함수 코드 블록을 표시한다.
함수는 값을 여러 개 반환할 수 있다. 반환값이 여럿일 때는 반환 타입들을 소괄호로 묶어서 표현한다.
package main
import "fmt"
func Divide(a, b int) (int, bool) {
if b == 0 {
return 0, false
}
return a / b, true
}
func main() {
c, success := Divide(9, 3)
fmt.Println(c, success)
d, success := Divide(9, 0)
fmt.Println(d, success)
}
OUTPUT :
3 true
0 false
재귀 호출(recursive call)이란 함수 안에서 자기 자신 함수를 다시 호출하는 것을 말한다.
package main
import "fmt"
func printNo(n int) {
if n == 0 {
return
}
fmt.Println(n)
printNo(n-1)
fmt.Println("After", n)
}
func main() {
printNo(3)
}
OUTPUT :
3
2
1
After 1
After 2
After 3