Menu
Coddy logo textTech

함수 스코프 기초

Coddy GO 여정의 기초 섹션에 포함된 레슨 — 109개 중 58번째.

Go에서 함수 내부에서 선언된 변수들은 해당 함수 내에서만 접근 가능합니다. 이를 함수 스코프(function scope)라고 합니다.

지역 변수를 사용하는 함수를 생성합니다:

func calculateTotal(price int, quantity int) int {
    tax := 0.1 * float64(price * quantity)  // 지역 변수
    total := price * quantity + int(tax)
    return total
}

func main() {
    result := calculateTotal(10, 2)
    fmt.Println("Total:", result)
    // fmt.Println(tax)  // 에러: tax는 여기서 접근할 수 없습니다
}

출력 결과에는 반환된 값만 표시됩니다:

Total: 22

변수 taxcalculateTotal 함수 내부에서만 존재하며 main에서 접근할 수 없습니다.

challenge icon

챌린지

초급

이 챌린지에서는 Go의 함수 스코프를 이해하는 연습을 합니다. 스코프 문제가 있는 간단한 프로그램을 수정해야 합니다.

이 프로그램에는 전역 변수 message와 이를 수정하려고 시도하는 함수가 있습니다. 여러분의 과제는 함수가 전역 변수를 올바르게 업데이트하도록 코드를 수정하는 것입니다.

직접 해보기

package main

import "fmt"

// 전역 변수
var message string = "Hello from global scope"

func updateMessage() {
    // 이것은 전역 변수를 수정하는 대신 새로운 지역 변수를 생성합니다
    message := "Hello from function scope"
    fmt.Println("Inside function:", message)
}

func main() {
    fmt.Println("Before function call:", message)
    updateMessage()
    
    // TODO: 전역 message는 여전히 원래 값입니다
    // 전역 변수를 변경하도록 updateMessage() 함수를 수정하세요
    fmt.Println("After function call:", message)
}
quiz icon실력 점검

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

기초의 모든 레슨