Golang 基础知识(十一.struct结构体)

本文介绍了Golang中的结构体,包括如何定义结构体、匿名结构体的使用、结构体的键值对初始化方式以及构造函数的创建。详细讲解了值方法和指针方法的接收者,以及结构体的"继承"概念。还讨论了序列化和反序列化,并给出学生信息管理系统的案例,展示了结构体在实际应用中的综合运用。
摘要由CSDN通过智能技术生成

注意:根据内存对齐原则,结构体里面的数据类型,应根据类型所占的大小,依次排序,从小到大,越小越小前,主要是优化内存读取速度。(取值是有一个”框“的(32 :4,64,:8),根据框取值时候是一块一块的取,超出框的部分,取两次,并删除多余的部分再和前面取得数据合并,操作变多了,消耗就多)

type Part1 struct {
   
    a bool
    b int32
    c int8
    d int64
    e byte
}

type Part2 struct {
   
    e byte
    c int8
    a bool
    b int32
    d int64
}

func main() {
   
    part1 := Part1{
   }
    part2 := Part2{
   }

    fmt.Printf("part1 size: %d, align: %d\n", unsafe.Sizeof(part1), unsafe.Alignof(part1))
    fmt.Printf("part2 size: %d, align: %d\n", unsafe.Sizeof(part2), unsafe.Alignof(part2))
}

输出结果:

part1 size: 32, align: 8
part2 size: 16, align: 8
1.定义

Go语言中的基础数据类型可以表示一些事物的基本属性,但是当我们想表达一个事物的全部或部分属性时,这时候再用单一的基本数据类型明显就无法满足需求了,Go语言提供了一种自定义数据类型,可以封装多个基本数据类型,这种数据类型叫结构体,英文名称struct。 也就是我们可以通过struct来定义自己的类型了。

Go语言中通过struct来实现面向对象。

注意:

  • 类型名:标识自定义结构体的名称,在同一个包内不能重复。
  • 字段名:表示结构体字段名。结构体中的字段名必须唯一。
  • 字段类型:表示结构体字段的具体类型。

使用typestruct关键字来定义结构体,具体代码格式如下:

type 类型名 struct {
   
    字段名 字段类型
    字段名 字段类型
    …
}

举个例子:

type person struct {
   
	name string
	city string
	age  int8
}

func main() {
   
	var p1 person
	p1.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值