2 pointsby kristianp10 hours ago1 comment
  • yruzin7 hours ago
    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 :)

    • kristianp7 hours ago
      Ok. but why are you posting a spoiler?
      • yruzin6 hours ago
        Sorry, my bad :)