Go 通过func类型变量调用对象的方法 (隐藏方法接收者)

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}
}

猜你喜欢

转载自blog.csdn.net/houyanhua1/article/details/88701984
今日推荐