함수 스코프 기초
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변수 tax는 calculateTotal 함수 내부에서만 존재하며 main에서 접근할 수 없습니다.
챌린지
초급이 챌린지에서는 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)
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
2변수와 기본 자료형
변수란 무엇인가`:=`를 이용한 타입 추론정수 (int)부동 소수점 수불리언 (Booleans)문자열 (Strings)제로 값 (Zero Values)상수명명 규칙요약 - 변수와 타입