9.9Go之结构体

9.9Go之结构体

什么是结构体

  • Go 语言通过用自定义的方式形成新的类型

  • 结构体是类型中带有成员的复合类型

结构体和结构体成员来描述真实世界的实体和实体对应的各种属性--->有点类似"类"的概念

Go语言结构体的特点

  • 可以被实例化,使用new&构造的类型实例的类型是类型的指针。--->非常重要

结构体的构成

结构体是由零个或多个任意类型的值聚合成的实体,每个值都可以称为结构体的成员。

成员变量称为"字段"

  • 字段拥有自己的类型和值。

  • 字段名必须唯一。

  • 字段的类型也可以是结构体,甚至是字段所在结构体的类型。

Go中的类

  • Go 语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念。--->类C

  • Go 语言的结构体与“类”都是复合结构体

  • Go 语言结构体能拥有方法,且每种自定义类型也可以拥有自己的方法。--->指针指向

定义结构体的关键字

type将各种基本类型定义为自定义类型。基本类型包括整型、字符串、布尔等。结构体是一种复合的基本类型

结构体定义格式:

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

各个部分的说明:

  • 类型名称:自定义结构体的名称。同一个包内不能重复

  • struct{}:表示结构体类型。

  • 字段:结构体中的字段名必须唯一

  • 字段类型:各个字段对应的基本类型

示例代码:

type point struct{
   x int
   y int
}

type color struct{
   R,B,G byte
}

结构体的定义只是一种内存布局的描述,只有当结构体实例化时,才会真正地分配内存

章节小结:

  • 结构体是一个符合类型,里面包含了一些基本类型或者其他结构体类型的字段

  • 结构体可以实例化。使用new||&对结构体进行实例。构造的类型实例的类型是类型的指针

原文地址:https://www.cnblogs.com/JunkingBoy/p/15248499.html