| ▲ | Go Pop quiz: what time was it?(dave.cheney.net) | ||||||||||||||||
| 2 points by kristianp 12 hours ago | 3 comments | |||||||||||||||||
| ▲ | yruzin 9 hours ago | parent [-] | ||||||||||||||||
Spoiler for the quiz below. The defer delays the function call, but it does not delay evaluation of the call’s arguments. This means that both timestamps are therefore captured near the beginning of the request, even though the second line is printed when the handler returns. Also, time.Since can use the monotonic component stored in time.Time, so the duration is not distorted by wall-clock corrections. start := time.Now() defer func() { log.Printf("request completed in %s", time.Since(start)) }() The answer is A: the two timestamps are approximately the same. Thanks for posting this! This is fun :) | |||||||||||||||||
| |||||||||||||||||