首页 > 其他 > 详细

Go Struct

时间:2020-02-24 21:58:25      阅读:56      评论:0      收藏:0      [点我收藏+]

struct

Go使用结构体和结构体成员来描述真实世界的实体和实例对应的各种属性。

Go中的类型可以被实例化,使用new或&构造的类型实例的类型是类型的指针。

结构体成员由一系列的成员变量构成,这些成员变量也被称为"字段"。

  • 字段拥有自己的类型和值;
  • 字段名必须唯一;
  • 字段的类型也可以是结构体,甚至是字段所在结构体的类型

Go的结构体与"类"都是符合结构体,但Go中结构体的内嵌配合接口比面向对象具有更高的扩展性和灵活性。

Go不仅结构体能拥有方法,且每种自定义类型也可以拥有自己的方法。

定义结构体

type 类型名struct {
字段1 字段1类型
字段2 字段2类型
...
}

实例化结构体————为结构体分配内存并初始化

结构体的定义只是一种内存布局的描述,只有当结构体实例化时,才会真正的分配内存。因此必须在定义结构体并实例化后才能使用结构体的字段。

实例化就是根据结构体定义的格式创建一份与格式一致的内存区域,结构体实例与实例间的内存是完全独立的。

基本的实例化形式

var ins T
# T 为结构体类型
#ins为结构体的实例

创建指针类型的结构体

Go可以使用new关键字对类型(包括结构体、整形、浮点型、字符串等)进行实例化,结构体在实例化后会形成指针类型的结构体。

ins := new(T)
# ins: T类型被实例化后保存到ins变量中,ins的类型为*T,属于指针。

Go可以像访问普通结构体一样使用"."访问结构体指针的成员。

type Player struct {
    Name string
    Health_Point int 
    Magic_Point int
}
tank := new(Player)
tank.Name = "Canon"
tank.Health_Point = 300

取结构体的地址实例化

ins := &T{}
# ins为结构体的实例,类型为*T,是指针类型

初始化结构体的成员变量

使用健值对初始化结构体

ins := 结构体类型名{
    字段1:字段1的值
    字段2:字段2的值
    ...
}

使用多个值的列表初始化结构体

ins := 结构体类型名{
    字段1的值,
    字段2的值,
}

初始化匿名结构体

构造函数————结构体和类型的一系列初始化操作的函数封装

Go的类型或结构体没有构造函数的功能。结构体的初始化过程可以使用函数封装实现。

多种方式创建和初始化结构体————模拟构造函数重载

带有父子关系结构体的构造和初始化————模拟父级构造调用

Go Struct

原文:https://www.cnblogs.com/followyou/p/12358919.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!