package main import "fmt" /* 结构体 type name struct 说明:struct是值传递所以 结构体1=结构体2 这是如果想通过结构体1修改结构体2那么在给结构体1赋值是就应该赋的是 &结构体2的地址值 */ //定义结构体就是PHP中的类 type Cat struct {//名字开头大写就可以在其他包使用 下面变量也是相同 Name string Age int Color string arrName [3] int //可以是数组 切片 指针 map等 如果字段类型是 指针 slice map 需要先创建空间才能使用 } func main() { //用结构体 这样cat1的值就是Cat结构体但都是默认值 var cat1 Cat cat1.Name="名字" cat1.Age=17 cat1.Color="黑白" fmt.Println(cat1) //取某个信息 fmt.Println(cat1.Name) //可以在声明的时候就初始化内容 如果不初始化就是默认值 var cat2=Cat{ Name: "猫", Age: 16, Color: "蓝色", } fmt.Println(cat2) //new一个类 p1 :=new(Cat)//p1其实是一个指针 但是和其他的使用一样是因为GO底层处理了 p1.Name="指针来赋值的名字" //也可以用&地址符来声明 person :=&Cat{} person.Name="用地址符声明的" }