前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >go的数据类型-复合数据类型-struct(二)

go的数据类型-复合数据类型-struct(二)

原创
作者头像
堕落飞鸟
发布2023-04-19 21:35:50
1890
发布2023-04-19 21:35:50
举报
文章被收录于专栏:飞鸟的专栏

操作

在Go中,我们可以定义方法来操作结构体类型。方法是一种特殊的函数,它们与特定类型的值相关联,并可以访问该类型的字段。

定义一个结构体类型的方法需要在函数名前面加上一个接收者类型,该类型指定了该方法所关联的结构体类型。例如,我们可以定义一个Person结构体类型的方法,用于打印该结构体的信息:

代码语言:javascript
复制
func (p Person) PrintInfo() {
    fmt.Printf("Name: %s, Age: %d\n", p.Name, p.Age)
}

该方法的接收者类型为Person,并将其命名为p。在该方法中,我们可以通过p.Namep.Age来访问结构体类型的字段,并使用fmt.Printf函数输出结构体类型的信息。

我们可以使用以下代码来调用该方法:

代码语言:javascript
复制
person.PrintInfo()

这将输出Name: Alice, Age: 31

除了使用值类型作为接收者类型之外,我们还可以使用指针类型作为接收者类型。这将使方法可以修改结构体类型的字段。例如,我们可以定义一个SetAge方法,用于设置Person结构体类型的年龄:

代码语言:javascript
复制
func (p *Person) SetAge(age int) {
    p.Age = age
}

该方法的接收者类型为*Person,并将其命名为p。在该方法中,我们可以通过p.Age来访问结构体类型的Age字段,并将其设置为传递给方法的age参数。

我们可以使用以下代码来调用该方法:

代码语言:javascript
复制
person.SetAge(32)
fmt.Printf("Name: %s, Age: %d\n", person.Name, person.Age)

这将输出Name: Alice, Age: 32

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档