package main import ( "fmt" ) //定义一个类型 type tsh struct { //定义成员,类型是func() string test func() string } //定义一个函数,获取tsh类型 func New(fn func() string) *tsh { return &tsh{ test: fn, } } func cre() string { return fmt.Sprintf("%s,来了", "tsh") } func main() { //new完得到tsh类型,调用该结构体的test成员,该成员是个函数 res := New(cre).test() fmt.Println(res) }
某些类的逻辑非常复杂,简化代码帮助理解下逻辑