go语言中语句块的含义

go语言中语句块的含义 语句块语句块是由{}所包含的一系列语句语句块内部声明的名字无法被外部块访问这个块决定了内部声明的名字的作用域范围也就是作用域很多隐式语句块主语句块包含所有源码对应内置作用域包语句块包括该包里所有的源码一个包可能会包括一个目录下的多个文件对应包集作用域文件语句块包括该文件中的所有源码对应局部作用域forifswitch等语句本身也在它自身的隐式语句块中对应局部作用域类似于for i:0;i5;i { fmt.Println(i) } fmt.Println(i)这里就会报错因为对于第4行的fmt.Println(i)而言没有i这个变量这个for语句判断完后下面不能再直接使用变量iif语句的话有一个神奇的事情就是如果if语句上定义了一个变量那么紧连着那个if语句的else语句同样可以使用那个变量if i : 0; i 0 { fmt.Println(i) // 能用 } else if i 10 { // 这里的 else if 居然也能用 i fmt.Println(i) // 能用 } else { fmt.Println(i) // 也能用 } // 到这里才彻底消失