The Timer type represents a single event. When the Timer expires, the current time will be sent on C, unless the Timer was created by AfterFunc. A Timer must be created with NewTimer or AfterFunc.
AfterFunc waits after calling its Start method for the duration to elapse and then calls f in its own goroutine. It returns a Timer that can be used to cancel the call using its Stop method, or pause using its Pause method
NewTimer creates a new Timer. It returns a Timer that can be used to cancel the call using its Stop method, or pause using its Pause method
Pause pauses current timer until Start method will be called. Next Start call will wait rest of duration.
Start starts Timer that will send the current time on its channel after at least duration d.
Stop prevents the Timer from firing. It returns true if the call stops the timer, false if the timer has already expired or been stopped. Stop does not close the channel, to prevent a read from the channel succeeding incorrectly.