变量重声明含义是对已经声明过的变量再次声明。变量重声明的前提条件如下:
1.由于变量的类型在其初始化时就已经确定了,所以对它再次声明时赋予的类型必须与其原本的类型一致,佛足额会产生编译错误。
2.变量的重声明只可能发生在某一个代码块中。如果与当前的变量重名的是外层代码块的变量,那就是另一种含义了。
3.变量的重声明只有在使用短变量声明时才会发生,否则也无法通过编译。如果要在此处声明全新的变量,那么就应该使用包含关键字var的声明语句,但是这时就不能与同一代码块中的任何变量有重名了。
4.被“声明并赋值”的变量必须是多个,并且其中至少有一个是新的变量。这时我们才说对其中的旧变量进行重声明。
测试:
func main(){
var err error
n, err := io.WriteString(os.Stdout, "Hello, everyone!\n")
fmt.Printf(string(n))
fmt.Println(err)
}
这里的n是新的变量,而err则是重新声明的变量