여러 값 반환하기
Coddy GO 여정의 기초 섹션에 포함된 레슨. 109개 중 56번째.
Go 함수는 한 번에 여러 값을 반환할 수 있으며, 결과와 오류 정보를 모두 반환할 때 매우 유용합니다.
몫과 나머지를 모두 반환하는 함수를 만드세요:
func divide(a, b int) (int, int) {
quotient := a / b
remainder := a % b
return quotient, remainder
}
func main() {
q, r := divide(7, 3)
fmt.Println("7 ÷ 3 =", q, "with remainder", r)
}이 프로그램을 실행하면 다음과 같이 출력됩니다:
7 ÷ 3 = 2 with remainder 1함수는 쉼표로 구분된 두 값을 반환하며, 대입문에서 여러 변수를 사용해 두 값을 모두 저장합니다.
반환된 값 중 일부만 필요하다면, 필요하지 않은 값을 무시하기 위해 빈 식별자 _를 사용할 수 있습니다:
q, _ := divide(7, 3) // 나머지는 무시합니다
fmt.Println("Quotient:", q)_를 사용하면 Go가 해당 반환값을 버리도록 할 수 있습니다. Go에서는 사용하지 않는 변수를 허용하지 않으므로 값을 사용하지 않을 때는 이 방법이 필요합니다.
챌린지
초급이 챌린지에서는 Go에서 함수가 여러 값을 반환하도록 하는 방법을 연습합니다.
사람의 이름, 나이, 그리고 학생인지 여부를 반환해야 하는 getPersonInfo라는 함수가 있습니다. 적절한 return 문을 추가하여 함수를 완성하는 것이 여러분의 과제입니다.
직접 해보기
package main
import "fmt"
// 이 함수는 name, age, isStudent 세 값을 반환해야 합니다
func getPersonInfo() (string, int, bool) {
// 변수는 이미 정의되어 있습니다
name := "Alex"
age := 25
isStudent := true
// TODO: 세 값(name, age, isStudent)을 모두 반환하세요
}
func main() {
// 함수를 호출하고 반환된 값을 저장하세요
name, age, isStudent := getPersonInfo()
// 값을 출력하세요
fmt.Printf("Name: %s\n", name)
fmt.Printf("Age: %d\n", age)
fmt.Printf("Is Student: %t\n", isStudent)
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
2변수와 기본 자료형
변수란 무엇인가`:=`를 이용한 타입 추론정수 (int)부동 소수점 수불리언 (Booleans)문자열 (Strings)제로 값 (Zero Values)상수명명 규칙요약 - 변수와 타입직접 연습해 보세요: 온라인 Go 컴파일러