go语言 记录奇怪的写法--慢慢品味

东林梁

关注

阅读 213

2022-09-09


package main

import "fmt"

type TestFunc func(*Bar, string)

type Bar struct {
Name string
Alias string
}

func (t *Bar) SetName(name string) {
t.Name = name
fmt.Println("Name:", t.Name)
}

func (t *Bar) SetAlias(alias string) {
t.Alias = alias
fmt.Println("Alias:", t.Alias)
}

type Foo struct {
f TestFunc
}

func main() {
foo := new(Foo)
bar := new(Bar)
foo.f = (*Bar).SetName
foo.f(bar, "LeBron Raymone James")
foo.f = (*Bar).SetAlias
foo.f(bar, "King")
}


精彩评论(0)

0 0 举报