demo.go(通过func类型变量调用对象的方法,隐藏方法接收者):
package main
import "fmt"
// 定义类
type Student struct {
name string
age int
}
// 定义类的方法
func (stu *Student)EditStu(name string, age int) {
stu.name = name
stu.age = age
}
func main() {
var stu Student
// 定义func类型变量
myFunc := stu.EditStu // myFunc变量中已经包含了stu对象的信息。
fmt.Printf("%T\n", myFunc) // func(string, int)
// 通过func类型变量 调用对象的方法
myFunc("张三", 20) // myFunc变量中已经包含了stu对象的信息。(隐藏接收者)
fmt.Println(stu) // {张三 20}
}