https://www.cnblogs.com/leisure520/p/7745691.html
----------------------------------------------------------------
GO語言不比其他語言,在struct中,它沒有構造函數,不必賦值也能不報錯。
比如:
type Student struct { name string age int } func main() { var P Student fmt.Println("The person's name is", P.name) fmt.Println("The person's name is", P.age) }
這是為什么呢,因為當命名一個類型的時候,string就默認為空,int類型默認為0,float64就默認為0.0,。
當初始化的時候,有幾種方式可以用得上:
第一種:
var P Student P.name = "Huang" P.age = 12 fmt.Println("The person's name is", P.name) fmt.Println("The person's name is", P.age)
第二種,直接:
var P Student = Student{"huang", 15} fmt.Println("The person's name is", P.name) fmt.Println("The person's name is", P.age)
第三種:
P := new(person)
注意第三種 new的話代表一個指針