我是靠谱客的博主 热心网友,这篇文章主要介绍Go语言的方法和函数的区别和示例,温故而知新,现在分享给大家,希望可以做个参考。

在 Go(Golang)语言中,方法(method)和函数(function)看起来很相似,但本质上有重要区别。我们来详细解释:


✅ 一、方法 vs 函数的区别

特征函数(Function)方法(Method)
定义普通的独立函数绑定在某个类型上
语法func 函数名(...)func (接收者 类型) 方法名(...)
接收者有一个接收者(可以是值或指针)
调用方式函数名()实例.方法名()
场景通用逻辑面向对象操作,封装数据行为


✅ 二、直观对比示例

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package main import "fmt" // 函数:独立存在 func sayHello(name string) {     fmt.Println("Hello", name) } // 定义一个结构体 type Person struct {     Name string } // 方法:属于 Person 类型 func (p Person) greet() {     fmt.Println("Hi, I’m", p.Name) } // 指针接收者方法:可以修改 p 的内容 func (p *Person) rename(newName string) {     p.Name = newName } func main() {     // 调用函数     sayHello("Alice")     // 使用方法     p := Person{Name: "Tom"}     p.greet() // Hi, I'm Tom     p.rename("Jerry")     p.greet() // Hi, I'm Jerry }


✅ 三、关键点说明

1. 方法绑定接收者(值 or 指针)

复制代码
1
2
func (p Person) greet()       // 值接收者,不能修改原对象 func (p *Person) rename(...)  // 指针接收者,可以修改对象字段
💡 如果你要修改结构体字段,必须用指针接收者。


2. 方法可用于接口定义

Go 接口定义的就是方法集合,函数则不适用。

复制代码
1
2
3
type Greeter interface {     greet() }


3. 函数可作为变量、传参

函数是一等公民,可以赋值给变量、作为参数传递。

复制代码
1
2
f := sayHello f("World")

方法可以通过 变量.方法 的方式“转换成函数”。


✅ 四、应用场景总结

使用场景
函数工具函数、逻辑计算、纯功能逻辑(如加法、时间格式化)
方法操作结构体数据、封装行为(面向对象风格)
接口使用只能使用方法(绑定类型)


🎯 一句话总结:

函数是通用功能,方法是绑定结构的行为。Go 没有类,但方法+结构体就是 Go 的“面向对象”。

最后

以上就是热心网友最近收集整理的关于Go语言的方法和函数的区别和示例,温故而知新的全部内容,更多相关Go语言内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(81)

评论列表共有 0 条评论

立即
投稿
返回
顶部