반환 값
Go에서는 값을 하나 이상 반환할 수 있다. 반환 값이 하나일 때는 괄호를 생략하고, 두 개 이상일 때는 괄호로 묶어준다.
▼ 반환 값이 하나일 때
package main import "fmt" func area(w, h int) int { return w * h } func main() { v := area(3, 4) fmt.Println(v) }
실행 결과
12
▼ 반환 값이 두 개 이상일 때
package main import "fmt" func multiply(w, h int) (int, int) { return w * 2, h * 2 } func main() { w, h := multiply(3, 4) fmt.Println(w, h) }
실행 결과
6 8
함수의 결과를 변수에 할당할 때 결과를 할당할 변수와 함수의 반환 값 개수가 같아야 한다. 이 코드에서 v := multiply(3, 4)로 multiply 함수를 호출하면 결과를 할당할 변수와 함수의 반환 값 개수가 달라 컴파일 에러가 발생한다.
▼ 함수의 결과를 할당할 변수와 반환 값 개수가 다를 때 컴파일 에러 발생
package main import "fmt" func main() { v := multiply(3, 4) // 컴파일 에러 발생 fmt.Println(v) } func multiply(w, h int) (int, int) { return w * 2, h * 2 }
실행 결과
prog.go:6: multiple-value multiply() in single-value context
Go 코드 컨벤션
함수에서 값을 너무 많이 반환하면 가독성이 떨어질 수 있다. 반환 값은 보통 세 개 이내로만 사용하는 게 좋다. 값을 네 개 이상 반환할 때는 배열이나 구조체로 반환하는 것을 권장한다.