🔥 여러 개의 반환값

171자
2분

Go 언어에서는 함수가 여러 개의 결과값을 반환할 수 있는데요. 이를 활용하면 함수의 활용도를 더욱 높일 수 있답니다.

예를 들어, 두 개의 문자열을 서로 바꿔주는 swap 함수를 만들어 볼까요?

func swap(x, y string) (string, string) {
	return y, x
}
 
go

위 코드를 보시면 swap 함수는 두 개의 string 타입 매개변수 xy를 받아서, 두 개의 string 타입 결과값을 반환하고 있어요. 반환값은 yx로, 입력받은 두 문자열의 순서를 바꿔서 반환하는 거죠.

이제 swap 함수를 사용해 볼까요?

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

main 함수에서 swap 함수를 호출할 때는 a, b := swap("hello", "world")와 같이 할 수 있답니다. 이렇게 하면 swap 함수가 반환한 두 개의 결과값이 ab 변수에 순서대로 저장되는 거예요.

위 코드를 실행하면 다음과 같은 결과가 출력될 거예요.

world hello
text

보시는 것처럼 "hello""world" 문자열의 순서가 바뀌어 출력되었죠?

이렇게 Go 언어에서는 함수가 여러 개의 결과값을 반환할 수 있어서 코드의 가독성과 유연성을 높일 수 있답니다.