Go语言结构体和方法

Posted weidaijie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言结构体和方法相关的知识,希望对你有一定的参考价值。

struct的使用:

1. 用来自定义复杂数据结构

2. struct里面可以包含多个字段(属性)

3. struct类型可以定义方法,注意和函数的区分

4. struct类型是值类型

5. struct类型可以嵌套

6. Go语言没有class类型,只有struct类型

struct声明:

type 标识符 struct 
       field1 type
       field2 type


例如:
type Student struct 
       Name string
       Age int
Score int

 struct 中字段访问:和其他语言一样,使用点

var stu Student

stu.Name = “tony”
stu.Age = 18
stu.Score=20

fmt.Printf(“name=%s age=%d score=%d”, stu.Name, stu.Age, stu.Score)

 struct定义的三种形式:

var stu Student

var stu *Student = new (Student)

var stu *Student = &Student

其中b和c返回的都是指向结构体的指针,访问形式如下

stu.Name、stu.Age和stu.Score或者 (*stu).Name、(*stu).Age等

 struct的内存布局:struct中的所有字段在内存是连续的,布局如下:

技术图片

struct链表:

链表定义:

type Student struct 
       Name string
       Next   *Student

每个节点包含下一个节点的地址,这样把所有的节点串起来了,通常把 链表中的第一个节点叫做链表头

  

  

  

  

以上是关于Go语言结构体和方法的主要内容,如果未能解决你的问题,请参考以下文章

golang之结构体和方法

golang中级进阶(二):结构体

Go语言简易的面向对象之结构体和从此突破指针

换个语言学一下 Golang ——结构体和接口

go语言学习笔记 — 基础 — 复合数据类型 — 结构体(9.1):结构体可见性规则,结构体和结构体成员字段的跨包导出

go语言学习笔记 — 基础 — 复合数据类型 — 结构体:构造函数 — 封装结构体和类型的一系列初始化操作(封装数据)