Golang如何声明和使用结构体

Go语言中结构体用于组合不同类型字段,定义使用type和struct,如type Person struct { Name string; Age int },字段首字母大写为公有,小写为私有。实例化可按字段名或顺序初始化,也可用new或&创建指针。通过.操作符访问字段,支持值接收者和指针接收者方法,实现数据行为封装。

golang如何声明和使用结构体

在Go语言中,结构体(struct)是一种用户自定义的数据类型,用于将多个不同类型的数据字段组合在一起。它类似于其他语言中的“类”,但不支持继承。结构体是构建复杂数据模型的基础,常用于表示实体对象,如用户、订单等。

声明结构体

使用 typestruct 关键字来定义一个结构体类型:

type Person struct {    Name string    Age  int    City string}

上述代码定义了一个名为 Person 的结构体,包含三个字段:Name、Age 和 City。每个字段都有对应的类型。

字段名首字母大写表示公有(可被其他包访问),小写表示私有(仅在当前包内可见)。

立即学习“go语言免费学习笔记(深入)”;

创建和初始化结构体实例

有多种方式创建结构体实例:

使用字段名初始化(推荐,清晰安全):

  p := Person{      Name: "Alice",      Age:  25,      City: "Beijing",  }  

按顺序初始化(必须提供所有字段):

  p := Person{"Bob", 30, "Shanghai"}  

使用 new 关键字(返回指针):

  p := new(Person)  p.Name = "Charlie"  p.Age = 35  

new 返回指向零值结构体的指针,所有字段为对应类型的默认值。

字面量取地址:

  p := &Person{Name: "Diana", Age: 28}  

这种方式常用于函数传参或赋值给接口。

访问和修改结构体字段

通过点号(.)操作符访问结构体字段:

fmt.Println(p.Name) // 输出: Alicep.Age = 26fmt.Println(p.Age)  // 输出: 26

如果变量是指针类型,Go会自动解引用:

ptr := &pfmt.Println(ptr.Name) // 自动转为 (*ptr).Name

结构体方法

可以为结构体定义方法,实现特定行为:

func (p Person) Introduce() {    fmt.Printf("Hi, I'm %s, %d years old.n", p.Name, p.Age)}func (p *Person) GrowUp() {    p.Age++}

上面定义了两个方法:

Introduce 是值接收者方法,操作的是副本。 GrowUp 是指针接收者方法,能修改原始结构体。

调用方式:

p.Introduce() // Hi, I'm Alice, 25 years old.p.GrowUp()    // Age 变为 26

基本上就这些。结构体是Go中组织数据的核心方式,配合方法可实现面向对象的基本逻辑。

以上就是Golang如何声明和使用结构体的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1414175.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月16日 07:54:12
下一篇 2025年12月16日 07:54:29

相关推荐

发表回复

登录后才能评论
关注微信