не указатель структуры? это ок?
https://play.golang.org/p/u5co0Mm6987
когда в цепочке сделать вызов - ок, ошибка кидается, а если разбить по переменным - ошибку уже не выловить
я предположу, что сам го компилятор underhood делает вызов даже на не указатель структуры как на указатель, типа
r, _ := http.NewRequest(http.MethodGet, "https://google.com", nil)
c := http.Client{}
c.Do(r) // преобразует в (&c).Do(r)
предположение верное
спасибо за ответ!
https://play.golang.org/p/yNL6BM1Xjfm вот тут нагляднее
благодарю) в примере modify просто примет не ссылку, а значение, поэтому и не изменится Foo. но как пример, что компилятор преобразует при вызове в указатель, то понятно. но конечно такая магия - это как-то такое себе. понятно, что с ней меньше мороки получается с указателями, но теряется контроль
верно, можно не заметить подвоха в modify и будет баг
Это хорошо известная и документированная особенность
кажется, нашел в спеке. мой факап, признаю)
Обсуждают сегодня