go언어는 다중 반환을 지원한다. 쉽게 말해 c언어의 경우 return [변수] 이런 식으로 하나만 가능했지만, 얘는 자료형만 지정해주면 여러개가 가능하다.
아래는 단순하게 변수를 교환하는 swap 함수와 main 함수로 구성된다.
1 2 3 4 5 6 7 8 9 10 11 | package main import "fmt" func swap(x, y string) (string, string) { return y, x } func main() { a, b := swap("hello", "world") fmt.Println(a, b) } | cs |
반환을 y, x 두 변수에 대해하며, 해당 변수는 인자를 받는 swap(x,y string) 뒤에 (string, string)으로 미리 자료형을 지정해준 뒤에 return 에서 반환할 변수 명만 지정 해주면된다.
c언어 처럼 포인터로 넘기네 마네 할 필요가 없는 것이다.