>백엔드 개발 >Golang >Go에서 함수 외부의 변수에 값을 할당할 수 없는 이유는 무엇입니까?

Go에서 함수 외부의 변수에 값을 할당할 수 없는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-17 07:12:03628검색

Why Can't I Assign a Value to a Variable Outside of a Function in Go?

Go에서 함수 본문 외부의 비선언문

Go에서는 비선언을 사용하여 함수 외부에서 변수를 선언하는 것이 불가능합니다. 성명. 이 오류는 다음 예에서 볼 수 있듯이 선언되지 않은 변수에 값을 할당하려고 할 때 발생합니다.

test := "This is a test."

func main() {
    fmt.Println(test)
    test = "Another value"
    fmt.Println(test)
}

솔루션

전체적으로 선언하려면- Go에서 액세스 가능한 변수를 사용하려면 기본 함수 외부에서 var 키워드를 사용하세요. 변수 이름은 패키지 전용으로 만들기 위해 소문자로 시작해야 합니다(해당 패키지 내에서만 액세스 가능).

var test = "This is a test"

이 방법을 사용하면 함수 외부에서 변수를 선언하고 함수 내에서 해당 값을 변경할 수 있습니다. 동일한 패키지에 있습니다.

추가 정보

  • := 짧은 선언 구문은 함수 본문 내에서만 허용됩니다.
  • 다음으로 선언된 변수 var는 맵 및 구조체와 같은 비원시 유형을 포함하여 모든 유형이 될 수 있습니다.
  • Go는 또한 기본 함수 전에 호출되어 패키지 초기화에 사용할 수 있는 init 함수를 제공합니다.

샘플 코드

다음은 package-private 변수를 사용하고 해당 값을 변경하는 방법에 대한 예입니다.

package apitest

import (
    "fmt"
)

var sessionID string

func main() {
    fmt.Println(sessionID)
    updateSessionID()
    fmt.Println(sessionID)
}

func updateSessionID() {
    sessionID = "NEW_SESSION_ID"
}

이 예에서 sessionID는 변수는 apitest 패키지 내 어디에서나 액세스할 수 있습니다. 기본 함수에서 빈 문자열로 초기화되고 updateSessionID 함수 내에서 업데이트됩니다.

위 내용은 Go에서 함수 외부의 변수에 값을 할당할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.