>백엔드 개발 >Golang >Go에서 '함수 본문 외부의 비선언문' 오류가 발생하는 이유는 무엇입니까?

Go에서 '함수 본문 외부의 비선언문' 오류가 발생하는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-13 10:41:02972검색

Why Do I Get

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

Go에서 함수 본문 외부에 변수를 선언하면 일반적으로 "non"이 발생합니다. -함수 본문 외부에 선언문이 있습니다." 오류가 발생했습니다. 이는 Go가 범위 지정 규칙을 엄격하게 적용하여 적절한 블록(예: 함수 내부) 내에서 변수를 선언하도록 요구하기 때문에 발생합니다.

관용적인 전역 변수 선언

생성하려면 변경 가능하지만 상수가 아닌 전역적으로 액세스 가능한 변수인 경우 구문은 다음과 같습니다.

var test = "This is a test"
  • var 키워드는 변수 선언에 사용됩니다.
  • 변수 이름(테스트 이 경우)은 소문자로 시작하여 패키지 내 가시성(내보내지 않음)을 나타내야 합니다.
  • = 기호는 변수에 값을 할당합니다.

예 :

package apitest

import (
    "fmt"
)

var test = "This is a test" // Globally accessible variable

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

확장 설명

  • 함수에서 변수 초기화: 함수 내부에서 변수를 선언하고 나중에 := 연산자를 사용하여 값을 할당합니다. 그러나 :=는 전역 변수 선언에 유효하지 않습니다.
  • 유형 추론: Go는 컴파일러가 초기 값을 기반으로 변수의 유형을 결정할 수 있는 유형 추론을 지원합니다.
  • 패키지 수준 변수 변경: 전역적으로 액세스할 수 있는 변수를 포함한 패키지 수준 변수는 동일한 변수 이름을 사용하여 함수 내에서 변경할 수 있습니다(예: 제공된 코드 조각의changeTest(newVal)) .
  • Init 함수: Go에서는 복잡한 패키지 초기화를 위해 main() 이전에 자동으로 실행되는 init 함수를 제공합니다. 패키지의 초기 상태를 설정하는 데 사용할 수 있습니다.

위 내용은 Go에서 '함수 본문 외부의 비선언문' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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