クラッシュコースパートVI:ブロック、スコープとシャドーイング
3418 ワード
ブロック
GOでは、ブロックは
{}
のセットで定義されます.通常、関数を作成するときは、既にブロック内にあります.しかし、我々はかなりどこでもブロックを定義することができます.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
ちょうどレベルシャドーイングをブロックすることは珍しいです.これにはまれなユースケースがあります.しかし、私はブロックレベルのシャドウイングやブロックのためにさえ、本当に良い使用ケースを見つけませんでした.次の手順
これは、このGOクラッシュコースシリーズのパート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