반응형
GO의 함수 선언하기
// func (함수명)(매개변수)(반환타입)
func Add(a int, b int) int {
}
함수 선언시 주의할점 두가지는 아래와 같다
- 함수명 첫 글자가 대문자이면 함수는 패키지 외부로 공개된다
- 반환값이 없는경우(void) 비워둔다
멀티 반환함수
함수는 값을 여러개 반환할 수 있다. 반환값이 여럿일 경우 반환타입들을 소괄호로 묶어 표현한다.
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)
}
변수 명 지정하여 반환하기
함수 선언부 반환타입을 적을때 변수명까지 적어주면 reutrn 문으로 해당 변수를 명시적으로 반환하지 않아도 값을 반환할 수 있다.
package main
import "fmt"
// 함수명 첫글자가 대문자이므로 패키지 외부로 공개된다.
func Divide(a, b int) (result int, success bool) {
if b == 0 {
result = 0
success = false
return // 명시적으로 반환할 값을 지정하지 않아도 된다.
}
result = a / b
success = true
return
}
func main() {
c, success := Divide(9, 3)
fmt.Println(c, success)
d, success := Divide(9, 0)
fmt.Println(d, success)
}
물론 위처럼 각 변수에 값을 입력한 형태로 반환을 해도 되지만, 기존 함수처럼 순서대로 값을 반환하면, 알아서 반환 변수에 매핑되어 반환된다.
반응형
'Language > GO' 카테고리의 다른 글
[GO] 구조체와 메소드 (0) | 2022.02.18 |
---|---|
[GO] 배열 (0) | 2022.02.16 |
[GO] fmt패키지를 이용한 텍스트 입출력하기 (0) | 2022.02.16 |
[Go] 패키지 (0) | 2022.02.16 |
[GO] 변수 (0) | 2022.01.29 |