time.AfterFunc()
accepts a duration and a function to be executed when that duration has expired. But the function cannot be a function that accepts parameters.
For example: The following function cannot be passed:
func Foo (b *Bar) {}
Although, it is possible to initialize a new function that calls the above one and then pass it:
f := func() {
Foo(somebar)
}
timer := time.AfterFunc(1*time.Second, f)
Should this really be done this way?
Why does time.AfterFunc not accept any functions that accept parameters?
Do there exist other/better ways to do this?