다중 반환

2019.02.07 17:40

cybertramp LANG/golang

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) (stringstring) {
    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언어 처럼 포인터로 넘기네 마네 할 필요가 없는 것이다.