Go - язык, который сознательно создавался, как очень простой язык. В Go всегда всё копируется. Если это базовый тип, то копируется базовый тип, если это структура, то копируется структура, если это массив, то копируется весь массив, если это указатель, то копируется указатель. Если это дескриптор слайса, то копируется этот дескриптор (не сами данные). И нет этих внезапных указателей, которые могут испортить жизнь джаваскриптизёру или пыхарю.
Поэтому, в Go не надо зазубривать, какие операции что возвращают, а мы просто глядим в нашей мега-IDE, что конкретно нам возвращает
time.Now()
А возсращает она нам очень простую структурку
time.Time
type Time struct {
wall uint64
ext int64
loc *Location
}
И что мы видим? Что из ссылок в этой структуре только
loc, который занимается исключительно часовыми поясами, а само время хранится в обычных целочисленных переменных без всяких ссылок. А т.к., как мы говорили ранее, в Go всегда всё копируется, то внезапному указателю (ссылке) просто неоткуда взяться.
Если вы запамятовали, и сомневаетесь, что происходит при присваивании, например, слайса, мапы или интерфейса, то лучшим способом это определить будет не зазубривать, а изучить, как устроены слайс, мапа или интерфейс изнутри, и тогда вы сами всё поймёте. И сделать это будет несложно, потому что язык Go написан на языке Go и использует свои же примитивы для своих же структур данных.
Из всего вышеописанного мы делаем вывод, что не все книжки одинаково полезны даже для подтирания, не то что для изучения.
Я рекомендую вам самый лучший инструмент для первоначального вкатывания в Go - это официальный курс
"A Tour of Go", где вы в интерактивном режиме изучите базовые основы языка за пару дней. А дальше уже можно смотреть на книги, и уже самому находить в них такие вот несуразности. Не стесняйтесь преходить прямо в IDE на типы или определения функций, чтобы самому смотреть, что же там возвращается. Так как, на наше счастье, Go - это строго-типизированный язык, то никаких сюрпризов и подвохов там не будет.