집중 집중 과정 파트 VI: 블록, 범위 및 섀도잉
3212 단어 goprogrammingbeginners
블록
이동 중에 블록은
{}
세트로 정의됩니다. 일반적으로 우리는 함수를 생성할 때 이미 블록에 있습니다. 그러나 우리는 거의 모든 곳에서 블록을 정의할 수 있습니다.i := 10
{
i := 5
fmt.Println(i) // i is 5
}
fmt.Println(i) // i is 10
범위
범위는 특정 변수가 정의되는 위치를 정의합니다. 범위는 블록 범위, 함수 범위 또는 패키지 범위일 수 있습니다. 각 범위는 이전 범위를 포함합니다. 패키지 범위 변수는 함수 및 블록에서 사용할 수 있지만 그 반대는 사용할 수 없습니다.
x := 10
var z int // z declared here
{
fmt.Println(x) // this is fine
y := 15
z = 20 // defined here
}
fmt.Println(y) // this is not fine
fmt.Println(z) // this is fine
섀도잉
외부 범위에 정의된 모든 변수를 섀도잉할 수 있습니다.
x := 10
{
x := 15
{
x := 20
fmt.Println(x) // 20
}
fmt.Println(x) // 15
}
fmt.Println(x) // 10
블록 레벨 섀도잉은 흔하지 않습니다. 이에 대한 드문 사용 사례가 있습니다. 하지만 블록 레벨 섀도잉이나 그 문제에 대한 블록에 대한 정말 좋은 사용 사례를 찾지 못했습니다.
다음 단계
이것은 바둑 단기집중과정 시리즈의 6부입니다.
Reference
이 문제에 관하여(집중 집중 과정 파트 VI: 블록, 범위 및 섀도잉), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/moficodes/go-crash-course-part-6-blocks-scopes-and-shadowing-228j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)