變量重聲明含義是對已經聲明過的變量再次聲明。變量重聲明的前提條件如下:
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則是重新聲明的變量