제공된 Go 코드의 기본 함수 내에는 상수를 숨기는 로컬 변수 이름이 정의되어 있습니다. 또는 동일한 이름을 가진 패키지 수준 변수입니다. 이로 인해 혼란과 잘못된 동작이 발생할 수 있습니다.
Go에서는 새 변수가 함수 내에서 선언되면 함수에 정의된 동일한 이름을 가진 다른 변수보다 우선합니다. 더 높은 수준(예: 패키지 수준 범위) 이를 변수 섀도잉이라고 합니다.
메인 함수 내에서 상수나 패키지 수준의 변수 이름을 참조할 때 식별자 이름은 함수를 나타내므로 직접 사용할 수는 없습니다. -레벨 변수. 대신 다음 접근 방식 중 하나를 사용할 수 있습니다.
const name = "Yosua" func main() { localName := name name := "Jobs" fmt.Println(name) // Jobs fmt.Println(localName) // Yosua }
const name = "Yosua" func getName() string { return name } func main() { name := "Jobs" fmt.Println(name) // Jobs fmt.Println(getName()) // Yosua }
const 대신 var를 사용하여 패키지 수준 변수를 선언하면 함수 내에서 해당 변수를 숨기고 재할당할 수 있습니다. 이러한 경우 위의 접근 방식 중 하나를 사용하면 원래 값이 보존됩니다.
위 내용은 Go에서 지역 변수에 의해 숨겨질 때 상수 및 패키지 수준 변수에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!