我有一个结构看起来像这样:
type Job struct {
Action func()
Cron string
}
因此,对于该struct的实例,的实现内的代码是否有可能Action
获得对的引用Cron
?谢谢。
使用闭包创建Action
函数:
func MakeAction(job *Job) func() {
return func() {
// function that uses the variable job
}
}
您可以使用如下MakeAction
功能:
j := &Job{ nil, "foo" }
j.Action = MakeAction(j)
请注意,当有人制作该Job
结构的副本时,这将以可能出乎意料的方式起作用-由创建的闭包内的引用MakeAction()
仍将指向原始实例(而不是副本)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句