GO 结构体基础

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="用地址符声明的"


}

  

posted @ 2021-05-31 20:32  不吃肉的羊  阅读(45)  评论(0编辑  收藏  举报