🔥 여러 개의 반환값

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 영상

채널 보기
트라이(Trie)에서 단어를 삭제하는 방법 | Trie 자료구조 이야기
벡터의 정의와 덧셈 연산 | 선형대수학
숫자 하나가 AI 모델의 운명을 바꾼다? | 선형대수학
AI는 왜 수백 차원의 벡터를 사용할까? 고차원 공간과 행렬 | 선형대수학
마지막편, 10억 개 데이터 검색이 0.3ms면 끝나는 이유와 LSM-Tree의 등장
AI를 위한 선형대수학 - 소개 | 선형대수학
BTree 노드의 구조는?
Trie 자료구조 파이썬 구현: Search와 Starts With 연산 | Trie 자료구조 이야기