结构体的类型可以是基本数据类型、数组或引用类型,为数组或引用类型时需要先make;
在创建一个结构体变量后,如果没有给字段赋值,都对应一个零值(默认值),布尔类型为false,数组为0,字符串为“”,数组的默认类型和它的元素类型有关,比如scores [3]int,则为[0,0,0],指针、切片、map的零值都为nil,即还没有分配空间
type Person struct { name string age int } func main() { //第一种 var p1 Person p1.name = "caoxt" p1.age = 23 //第二种 fmt.Println(p1.name, p1.age) p2 := Person{"caoxt2", 24} fmt.Println(p2.name,p2.age) //第三种 p3 := new(Person) p3.name = "caoxt3" p3.age = 25 fmt.Println(p3.name, p3.age) //第四种 p4 := &Person{"tom", 99} //p4.name = "caoxt4" //p4.age = 26 fmt.Println(p4.name, p4.age) } ~