@Rouslan943

Почему в обработчиках HTTP на Go ResponseWriter является значением, а запрос указателем?

почему же Request объект является указателем, а ResponseWriter не указателем ? Есть ли необходимость в этом или это просто для того, чтобы сделать возможным какой-то продвинутый код, основанный на указателях?
  • Вопрос задан
  • 160 просмотров
Пригласить эксперта
Ответы на вопрос 2
romesses
@romesses
Backend инженер
ResponseWriter - это интерфейс.
Таким образом, аргументом является реализация этого интерфейса (экземпляра), которая передается таки по указателю.
Ответ написан
Комментировать
uvelichitel
@uvelichitel Куратор тега Go
habrahabr.ru/users/uvelichitel
ResponseWriter - это interface. Тип interface не принято передавать в функцию по ссылке UsePointer(* SomeInterface) потому что такой аргумент сложно сконструировать. Даже если ваш тип MyResponseWriter удовлетворяет интерфейс ResponseWriter вам пришлось бы
MyOwnWriter := ResponseWriter(MyResponseWriter)
MyArgument := &MyOwnWriter
//и только потом
UsePointer(MyArgument)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы