Multiple results

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

실행결과

world hello

위의 코드는 함수 swap이 두 개의 문자열을 입력 받아서 순서를 바꾸어 주는 간단한 기능을 수행한다. 뭐 별 내용은 없고, 여러 개의 함수 결과값(반환값)을 가질 수 있는 게 핵심이다.
world hello... 세계가 안녕한다...

Named results

package main

import "fmt"

func split(sum int) (x, y int) {
    x = sum * 4 / 9
    y = sum - x
    return
}

func main() {
    fmt.Println(split(17))
}

실행결과

7 10

위의 코드는 입력받은 정수값을 자릿수별로 나누어(분해해) 주는 코드이다.
함수 선언할 때 결과값 부분에 x, y라는 이름을 붙여주니까return 키워드만 사용해도 자동으로 반환해준다.
함수 선언할 때 결과값을 처음에 명확하게 설계하고 들어간 후, return만 간단히 때려버리는 cool함을 보여준다.

출처

https://go-tour-kr.appspot.com/#9
https://go-tour-kr.appspot.com/#10