我有一个看起来像这样的结构:
type Job struct {
Action func()
Cron string
}
Run Code Online (Sandbox Code Playgroud)
那么对于这个结构体的实例,实现中的代码是否有可能Action获得对 的引用Cron?谢谢。
使用闭包创建Action函数:
func MakeAction(job *Job) func() {\n return func() {\n // function that uses the variable job\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\nMakeAction您可以像这样使用该函数:
j := &Job{ nil, "foo" }\nj.Action = MakeAction(j)\nRun Code Online (Sandbox Code Playgroud)\n\n请注意,当有人复制结构体Job\xe2\x80\x94 时,这可能会以意想不到的方式运行,创建的闭包内的引用MakeAction()仍将指向原始实例(而不是副本)。
| 归档时间: |
|
| 查看次数: |
3716 次 |
| 最近记录: |