Menu
Coddy logo textTech

여러 값 반환하기

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

함수는 쉼표로 구분된 두 개의 값을 반환하며, 할당 시 여러 변수를 사용하여 두 값을 모두 캡처합니다.

반환된 값 중 하나만 필요한 경우, 빈 식별자(blank identifier) _를 사용하여 다른 값을 무시할 수 있습니다. 예를 들어, 몫만 가져오려면 다음과 같이 합니다:

q, _ := divide(7, 3)
fmt.Println("Quotient:", q)

_는 나머지를 무시하므로 컴파일러가 사용되지 않은 변수에 대해 오류를 발생시키지 않습니다.

challenge icon

챌린지

초급

이 챌린지에서는 Go에서 함수로부터 여러 값을 반환하는 연습을 하게 됩니다.

사람의 이름, 나이, 그리고 학생 여부를 반환해야 하는 getPersonInfo라는 함수가 있습니다. 여러분의 과제는 적절한 return 문을 추가하여 함수를 완성하는 것입니다.

치트 시트

Go 함수는 한 번에 여러 개의 값을 반환할 수 있습니다. 괄호 안에 여러 개의 반환 타입을 지정하고, 쉼표로 구분하여 여러 값을 반환합니다:

func divide(a, b int) (int, int) {
    quotient := a / b
    remainder := a % b
    return quotient, remainder
}

할당 시 여러 변수를 사용하여 여러 개의 반환 값을 캡처합니다:

q, r := divide(7, 3)

직접 해보기

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)
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨