go语言结构体基础认识

一个结构体

Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性

定义结构体

结构体本身就是一种类型,就如同基本数据类型一样,可以声明实例。

type Person struct {
    name string
    sex  string
    age  int
}

匿名字段结构体:只提供类型而不写字段名

type Student struct {
    Person 
    id   int
    addr string
}
type Student struct {
    Person
    int
    mystr
}

结构体声明实例

只有当结构体实例化时,才会真正地分配内存。 也就是必须实例化后才能使用结构体的字段。
基本实例化

实例化一个结构体p:
var p Person

匿名结构体

var user struct{Name string; Age int}
定义了结构体同时使用这个结构体创建实例

创建指针类型结构体

var p2 = new(Person)

取结构体的地址实例化

p3 := &Person{}
Go语言帮我们实现的语法糖 —>p3.name=“AA” (*p3).name=“AA”

结构体初始化

基本初始化
先声明后初始化

var p Person
p.name = “AA”

使用键值对初始化
使用值的列表初始化

1.必须初始化结构体的所有字段。
2.初始值的填充顺序必须与字段在结构体中的声明顺序一致。
3.该方式不能和键值初始化方式混用。

结构体的打印

打印:{字段值 字段值 字段值 …}

fmt.Println(p)
打印结果:{ 0} //空空0

p就是Person的一个实例化,初始化完结构体p就会分配内存,p的字段就默认值了(字符串默认为空“”)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值