Multiple Return Values

Go언어에서는 다수개의 결과값을 리턴 할 수 있는 기능을 기본적으로 제공합니다.
이 기능이 Go언어를 특징짓는 기능 중 하나이기도 합니다.
예를들면, 특정함수를 호출할 경우, 정상적인 결과값과 에러발생 유무를 반환할 수 있게됩니다.

package main

import "fmt"

func vals()(int, int) {       // [1]
    return 3, 7
}

func main() {

    a, b := vals()            // [2]
    fmt.Println(a)
    fmt.Println(b)

    _, c := vals()            // [3]
    fmt.Println(c)
}
  1. (int int)로 표시한것이 바로 정수형 2개값을 반환한다는 선언입니다.
  2. 함수 선언에서 2개의 정수값을 반환하도록 되어 있으므로, 2개의 변수를 단축선언으로
    선언한 후 각각 순차적으로 값을 대입 받을 수 있습니다.
  3. 만약 2개를 반환하는 함수인데, 1개의 값만 사용하고 싶다면, 이미 배웠듯이 _ 변수로
    해당 값을 무시할 수 있습니다. (이렇게 하지 않으면, 사용하지 않는 변수에러가 발생합니다.)

실행하면 다음과 같습니다.

$ go run multiple-return-values.go
3
7
7

Go언어의 또다른 특징중 하나는 바로 불특정 다수개의 인수를 넘겨줄 수 있는 기능입니다.