One reader pointed out that the example isn't compelling because
&age would have worked just as well. This CL changes the example
to use a nontrivial expression. Don't nitpick the arithmetic.
For #45624
Change-Id: Icc745f5ee7000c1d3559da1388c6a5596c4d1f46
Reviewed-on: https://go-review.googlesource.com/c/go/+/714040
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Alan Donovan <adonovan@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
Age *int `json:"age"` // age if known; nil otherwise
}
-func personJSON(name string, age int) ([]byte, error) {
+func personJSON(name string, born time.Time) ([]byte, error) {
return json.Marshal(Person{
Name: name,
- Age: new(age),
+ Age: new(yearsSince(born)),
})
}
+
+func yearsSince(t time.Time) int {
+ return int(time.Since(t).Hours() / (365.25 * 24)) // approximately
+}
```