• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

区块链技术语言(二十):Go语言结构体

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Go语言结构体是一种聚合的数据类型,本文从六个角度为大家详解了Go语言结构体的相关概念。

一、结构体概述

Go语言结构体是一种聚合的数据类型,由一系列具有相同类型或不同类型的数据构成的数据集合。

结构体的声明格式如图1所示,内部没有关键词var,每个数据称为结构体成员。例如,图1所示,利用结构体表示法,以一个班级为单位,记录这个班的班级名称,统计班级的总人数、男女生人数。

定义一个结构体需要用到两个关键词:type和struct。大括号内部是结构体类型的成员变量和变量类型。


二、结构体初始化

结构体的初始化,就是给结构体成员变量赋初值。结构体是由一系列具有相同类型或不同类型的数据(结构体成员)构成的数据集合。如果没有对结构体变量赋值、或者部分结构体成员变量没有被赋值,那么没有被赋值的成员变量取其对应类型的零值。

如果一个变量直接指向内存空间内存储的结构体类型值,那么这个变量就是结构体类型变量;如果一个变量存储的是指向结构体类型值的内存空间地址,这个变量就是结构体指针类型变量。

2.1 结构体类型变量的初始化

对一个结构体类型变量进行初始化有两种方式,如表1所示


2.2 结构体指针类型变量的初始化

结构体指针类型变量的初始化方式和结构体类型变量的初始化方式类似。结构体指针类型就是在结构体类型之前加上“*”,赋值时在赋值之前加上取地址符“&”。同样,它有顺序初始化和指定成员初始化两种赋值方式。


三、匿名字段

结构体里的成员只有类型,没有变量名,这样的字段被称为匿名字段。

虽然匿名字段没有名称,但本质上是以类型名为名称的字段。


四、结构体成员的调用

4.1 结构体类型变量的成员调用

调用结构体类型变量的成员,需要用到点操作符“.”,即:


对被调用的结构体变量成员,既可以对其赋初值,也可以对它的值进行修改。


4.2 指针变量的成员的调用

对指针变量的成员调用方式有两种,如表2所示。


五、结构体类型变量的比较和赋值

5.1 结构体类型变量的比较

结构体类型变量可以使用“==”或“!=”运算符进行比较,但不支持“>”或“<”。

当两个结构体类型变量类型相同,相应的成员变量值相等,这两个结构体类型变量相等;否则,结构体类型变量不相等。


5.2 结构体类型变量的赋值

两个结构体类型变量类型相同,这两个变量可以相互赋值。


六、结构体类型变量作为函数参数

6.1 值传递

结构体是值类型,结构体类型变量作为函数参数,调用函数时将实际参数复制一份传递到函数中,在函数中对参数进行修改,实际参数不会受影响。


6.2 引用传递

将结构体类型变量的地址作为实际参数进行传递,在函数调用时实参传递到函数,在函数中对参数进行的修改,对实际参数有影响。




原文发布时间为:2018-09-15
本文来自云栖社区合作伙伴“Golang语言社区”,了解相关信息可以关注“Golang语言社区”。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【保姆级教程】手把手教你进行Go语言环境安装及相关VSCode配置 ...发布时间:2022-07-10
下一篇:
go语言的逆向发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap