Go语言中结构体方法通过接收者定义,值接收者用于读操作,指针接收者用于修改结构体;调用时Go自动处理取地址,大对象或需修改时应使用指针接收者以提升性能和一致性。

在Go语言中,结构体方法是通过在函数名前添加一个接收者(receiver)来实现的。接收者可以是指针类型或值类型,它表示该方法作用于哪个结构体实例。
先定义一个结构体,然后为它绑定方法:
type Person struct {
Name string
Age int
}
// 值接收者方法
func (p Person) SayHello() {
fmt.Printf("Hello, I'm %s, %d years old.\n", p.Name, p.Age)
}
// 指针接收者方法(可修改结构体字段)
func (p *Person) SetAge(newAge int) {
p.Age = newAge
}
说明:
(p Person) 是值接收者,调用时会复制结构体;适合读操作。(p *Person) 是指针接收者,可以直接修改原结构体;适合写操作。创建结构体实例后,使用点语法调用方法:
本书是全面讲述PHP与MySQL的经典之作,书中不但全面介绍了两种技术的核心特性,还讲解了如何高效地结合这两种技术构建健壮的数据驱动的应用程序。本书涵盖了两种技术新版本中出现的最新特性,书中大量实际的示例和深入的分析均来自于作者在这方面多年的专业经验,可用于解决开发者在实际中所面临的各种挑战。
466
立即学习“go语言免费学习笔记(深入)”;
p := Person{Name: "Alice", Age: 25}
p.SayHello() // 输出:Hello, I'm Alice, 25 years old.
p.SetAge(30) // 修改年龄
p.SayHello() // 输出:Hello, I'm Alice, 30 years old.
即使方法使用指针接收者,Go会自动处理取地址,p.SetAge(30) 等价于 (&p).SetAge(30)。
根据场景合理选择:
以上就是Golang如何实现结构体方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号