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

在Go语言中,结构体(struct)是一种用户自定义的数据类型,用于将多个不同类型的数据字段组合在一起。它类似于其他语言中的“类”,但不支持继承。结构体是构建复杂数据模型的基础,常用于表示实体对象,如用户、订单等。
声明结构体
使用 type 和 struct 关键字来定义一个结构体类型:
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
微信扫一扫
支付宝扫一扫