[已解决]怎么在Go struct 内使用Func?

我希望在新建一个struct的时候直接导入希望运行的函数

switch 的话太浪费了,也不优美啊

???? 应该填入什么呢……

type Foo struct { FuncIWantToRun ????? }

func NewFoo () *Foo { return &Foo{ ???????? }}

共 5 个回复


JM_Joy

在New函数中写不就行了?!

# 0

Bluek404

type Foo struct { FuncIWantToRun func() }
func NewFoo () *Foo { return &Foo{func(){} }}

这个样子?

# 2

yg7001

不想用switch,那就用map,NewXX 函数接收一个参数,决定调用那个

# 3

mengzhuo

我知道该怎么做了 用Interface直接回相应的函数了

func NewLogger(dest string) Logger {
     if dest == "std"{
             return StdLogger()
     }
}

type Logger interface {
Log(msg string)
}

func StdLogger struct{
}

func (l StdLogger) Log(msg string){
 .....
}
# 4