I have a struct looks something like this:
type Job struct {
Action func()
Cron string
}
So for an instance of this struct, is it possible for the code inside the implementation of Action
to get a reference to Cron
? Thanks.
I have a struct looks something like this:
type Job struct {
Action func()
Cron string
}
So for an instance of this struct, is it possible for the code inside the implementation of Action
to get a reference to Cron
? Thanks.
Use a closure to create the Action
function:
func MakeAction(job *Job) func() {
return func() {
// function that uses the variable job
}
}
You can use the MakeAction
function like this:
j := &Job{ nil, "foo" }
j.Action = MakeAction(j)
Notice that this will behave in possibly unexpected ways when somebody makes a copy of the Job
structure—the reference inside the closure created by MakeAction()
will still point to the original instance (instead of the copy).