変数のスコープがちょっと不思議
package main import ( "fmt" ) func main() { if a := 1; a==1 { if a:=2; a==2 { fmt.Println(a); a :=3 fmt.Println(a); } fmt.Println(a); } }
↓結果
2 3 1
スコープを入れ子にすると外側のスコープで宣言済の変数名でも宣言出来るのか・・・
それにしもif a:=2...のブロック内でまたa:=3出来るのもちょっと不思議。。
package main import ( "fmt" ) func main() { if a := 1; a==1 { if a:=2; a==2 { fmt.Println(a); a :=3 fmt.Println(a); } fmt.Println(a); } }
↓結果
2 3 1
スコープを入れ子にすると外側のスコープで宣言済の変数名でも宣言出来るのか・・・
それにしもif a:=2...のブロック内でまたa:=3出来るのもちょっと不思議。。