수 없습니다. 로컬 변수 name
이 범위 내에있는 동안 name
이라는 이름은 로컬 변수를 나타냅니다. 최상위 식별자를 나타내는 "한정자"가 없습니다.
블록으로 선언하는 식별자
Spec: Declarations and scope:
이너 블록에 재 선언 될 수있다. 내부 선언의 식별자는 범위 내에 있지만 내부 선언에 의해 선언 된 엔티티를 나타냅니다.
최상위 상수/변수와 로컬 변수에 동시에 액세스해야하는 경우 다른 이름을 사용하십시오.
어떤 이유로 당신은 또는, 당신은 상수 또는 변수 먼저 최상위의 값을 절약 할 수 있습니다하지 않으 수없는 경우
cname := name
name := "Jobs"
fmt.Println(name)
fmt.Println(cname)
을 또는 당신은 그것을 액세스 할 수있는 다른 수단을 제공 할 수있다 , 예. 함수 : 두 경우 모두
func getName() string {
return name
}
name := "Jobs"
fmt.Println(name)
fmt.Println(getName())
출력합니다 (Go Playground 그들을 시도가) :
Jobs
Yosua
이 컴파일되지 않습니다. 나는 물어야한다, 왜 이것을하고 싶니? – squiguy
아, 죄송합니다, 패키지 레벨 변수를 삭제하는 걸 깜빡해서 컴파일 할 수 없습니다. Golang이 할 수 있는지 확인하고 싶습니다. –