🔥 여러 개의 반환값

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

채널 보기
마지막편, 트라이 노드를 50% 이상 줄이는 방법? 압축 트라이 성능 분석 | Trie 자료구조 이야기
직교성과 벡터 투영 | 선형대수학
AI는 왜 수백 차원의 벡터를 사용할까? 고차원 공간과 행렬 | 선형대수학
스칼라 곱셈과 내적의 기하학적 의미 | 선형대수학
트라이(Trie)에서 단어를 삭제하는 방법 | Trie 자료구조 이야기
우리가 매일 쓰는 맞춤법 검사기와 라우터 속에 숨겨진 알고리즘은? | Trie 자료구조 이야기
트라이(Trie)를 이용한 자동 완성 알고리즘 | Trie 자료구조 이야기
행렬의 기본 연산 - 행렬 덧셈, 스칼라 곱, 전치 | 선형대수학