golang 函数和方法的区别
一句话总结就是,func直接函数名就是函数,否则就是方法.
至于是谁的的方法,看函数前面有没有*
号的指向.
golang中函数第一等公民,所以以函数优先.
demo\main.go
package main
import "fmt"
// 定义一个结构体
type Student struct {
name string
age int
}
// 定义一个函数,用于打印学生信息,它不依赖于特定的 Student 类型实例
func printStudentInfo(s Student) {
fmt.Printf("学生姓名:%s,年龄:%d\n", s.name, s.age)
}
// 定义一个方法,用于修改学生的年龄,它与 Student 类型关联
// ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
// func直接函数名就是函数,否则就是方法
func (s *Student) setAge(newAge int) {
s.age = newAge
}
func main() {
// 创建一个 Student 实例
stu := Student{name: "Alice", age: 20}
// 调用函数
printStudentInfo(stu)
// 调用方法
stu.setAge(21)
printStudentInfo(stu)
}
demo\main_test.go
package main
import "testing"
func TestMain(t *testing.T) {
t.Run("testMain", func(t *testing.T) {
main()
})
}
标签:函数,区别,golang,stu,func,Student,main
From: https://www.cnblogs.com/zhuoss/p/18666326