🔥 여러 개의 반환값

171자
2분

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

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

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

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

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

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

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

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

text
world hello
text
world hello

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

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

YouTube 영상

채널 보기
함수 객체의 보편적 구성 | 프로그래머를 위한 카테고리 이론
변환 파이프로 컨트롤러 코드 깔끔하게 만들기 | NestJS 가이드
입력을 전처리하는 Functor - Contravariant와 contramap 이해하기 | 프로그래머를 위한 카테고리 이론
Writer 펑터와 클라이슬리 카테고리 | 프로그래머를 위한 카테고리 이론
NestJS 인터셉터에서 map 연산자로 응답을 변환하는 방법 | NestJS 가이드
API 응답 지연과 복잡한 에러, NestJS 인터셉터로 관리하는 방법 | NestJS 가이드
함수 타입과 Hom-Set 이해하기 | 프로그래머를 위한 카테고리 이론
NestJS 역할 기반 접근 권한 부여 - Guard, Reflector | NestJS 가이드