Language/GO

[GO] 함수

Hoplin 2022. 2. 16. 22:15
반응형

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)
}

물론 위처럼 각 변수에 값을 입력한 형태로 반환을 해도 되지만, 기존 함수처럼 순서대로 값을 반환하면, 알아서 반환 변수에 매핑되어 반환된다.

 

반응형