Go语言之定义结构体(Struct)-《Go语言实战指南

结构体(struct)是 Go 中的一种复合数据类型,它允许你将多个不同类型的字段组合成一个类型,类似于 C 语言的结构体或面向对象语言中的类。

一、结构体的基本定义type结构体名struct{ 字段名 字段类型 ...}示例:typePersonstruct{ NamestringAgeint}

这里定义了一个 Person 类型,包含两个字段:Name 和 Age。

二、创建结构体实例

你可以用多种方式创建结构体实例。

1. 使用字面量(推荐)p := Person{Name:"Alice", Age:30}2. 指针形式(使用 &)p := &Person{Name:"Bob", Age:25}fmt.Println(p.Name)// 自动解引用,等价于 (*p).Name3. 使用 new 关键字(不推荐)p :=new(Person)p.Name ="Charlie"p.Age =22

三、访问与修改字段p := Person{Name:"Dave", Age:40}fmt.Println(p.Name)// 输出:Davep.Age =41fmt.Println(p.Age)// 输出:41

结构体字段是公开(以大写字母开头)还是私有(以小写字母开头)由字段名的首字母决定。

四、结构体的零值

结构体的零值由每个字段的零值组成:

varp Personfmt.Println(p.Name)// ""fmt.Println(p.Age)// 0

五、结构体比较(==)

结构体可以直接用 == 比较,但前提是所有字段类型也支持比较。

p1 := Person{"Tom",18}p2 := Person{"Tom",18}fmt.Println(p1 == p2)// true

如果结构体中含有 map、slice、function 等不可比较类型,则不能直接用 ==。

六、结构体嵌套(组合)typeAddressstruct{ CitystringStatestring}typeEmployeestruct{ NamestringAgeintAddress Address}

使用时:

e := Employee{ Name:"Eva", Age:30, Address: Address{ City:"Beijing", State:"China", },}fmt.Println(e.Address.City)// 输出:Beijing

七、结构体标签(Tag)

结构体字段可以带标签(如用于 JSON 编码):

typeUserstruct{ IDint`json:"id"`Namestring`json:"name"`}

配合标准库 encoding/json 可用于序列化与反序列化。

八、小结

  • 特性
  • 说明
  • 定义结构体type StructName struct {}
  • 创建实例使用字面量 {},或 new,或 &{}
  • 字段访问instance.field 或 ptr.field
  • 支持嵌套结构体内可嵌套另一个结构体作为字段
  • 支持比较仅当所有字段可比较时可使用 ==
  • 可加标签(Tag)用于 JSON、DB 映射等反射相关应用场景
特别声明:[Go语言之定义结构体(Struct)-《Go语言实战指南》] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

若羽臣预计2025年度归母净利润同比增长66.61%至89.33%(若羽臣上市)

1月27日,若羽臣(003010)发布公告,预计2025年归母净利润为1.76亿元至2亿元,同比增长66.61%至89.33%;扣除非经常性损益后的净利润预计为1.7亿元至1.94亿元,同比增长60.25%至…

若羽臣预计2025年度归母净利润同比增长66.61%至89.33%(若羽臣上市)

多元场景适配!定制专属手办,满足纪念、送礼、收藏全需求(多元场景 英文)

五彩石手办定制,凭借精准的真人复刻、全维度的个性化设计、优质的品质保障,满足纪念、送礼、收藏等多元需求,让每一份情感都能得到专属的承载,每一个重要时刻都能被永恒铭记。 从纪念人生的重要瞬间,到向身边的人表达心…

多元场景适配!定制专属手办,满足纪念、送礼、收藏全需求(多元场景 英文)

正观漫读丨经典老剧里的诗意(正观实业)

妈妈当年哼《葬花吟》,未必真懂“风刀霜剑”的深意,却唱出了对生活最本真的温柔;而我如今听到“人面不知何处去”,想起的也不是新剧里的桃花,而是三十年前那个有缝纫机声、电视雪花点和妈妈歌声的冬夜。它藏在老剧的镜头…

正观漫读丨经典老剧里的诗意(正观实业)

小红书去水印视频教程!2026 免费一看就会 推荐榜(小红书去水印视频快捷指令链接)

操作步骤(10秒搞定): 1 复制链接:打开小红书目标视频→右上角「···」→复制链接 2开小程序:微信搜「无损去水印精灵」→直接进入(无需下载! 操作步骤: 1 复制链接:单条批量复制小红书视频链…

小红书去水印视频教程!2026 免费一看就会 推荐榜(小红书去水印视频快捷指令链接)

显卡也能当取暖器?(显卡当暖气)

说到底,显卡废热利用这个话题之所以能引发这么多讨论,不仅因为它本身的趣味性,更因为它代表了科技爱好者们对创新的不懈追求。 最后要说的是,虽然目前显卡废热利用还面临诸多技术难题,但这种对能源效率的思考本身就很…

显卡也能当取暖器?(显卡当暖气)