Junior — Middle
Can you explain how the time.After function works in Go?
sobes.tech AI
Answer from AI
The time.After function in Go returns a channel of type <-chan time.Time, which receives a value after a specified duration. Essentially, it creates a timer that, after the specified time, sends the current time into this channel. This is useful for implementing timeouts and delays in goroutines.
Example usage:
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println("Waiting for 2 seconds...")
<-time.After(2 * time.Second) // blocks until a value is received in the channel
fmt.Println("2 seconds have passed")
}
Inside time.After, a timer is created that starts and, after the time elapses, sends a value into the channel. After that, the channel can be used in select or simply read from it to implement delays or timeouts.