Anatoly
Anonymous
Aleksandr
тебе просто не надо пытаться все, что одинаково называется подпихивать в свой код
Aleksandr
можешь, но не надо
Anonymous
вряд ли, скорее всего получишь ошибку: Expected bar.Foo, but got *.Foo
Anonymous
Если у них один интерфейс, то они подходят. А если у них еще и разные кишки, то, собственно, ССЗБ
Aleksandr
Anonymous
Foo - интерфейс
и что? На play можно накидать с http, как чел хочет, получит ошибку
invariance
Anonymous
Aleksandr
Anonymous
ну так, если аргумент нужен io.Reader, foo.Reader не пройдёт уже
Aleksandr
утиная типизация
Anatoly
"да, да, чесночный соус" (с)
Aleksandr
Aleksandr
твоя реализация io.Reader будет foo.Reader вообще-то. или bytes.Reader, strings.Reader итд
Mike
но нью-то вызвалось =)
Mike
и не ругается что результат всрал
Aleksandr
насколько я понимаю, это замена init()
Mike
Aleksandr
есть. нет конструктора
Anatoly
"разогрев", инициализация всяких внутренних структур и т.п.
Aleksandr
Kirill
Kirill
начиная откуда? отходил.
Aleksandr
я честно говоря не понял. переформулируй
Aleksandr
в твоем случае - то, что выше - у тебя функция является и реализацией интерфейса.
но накормить не получится, потому что это в разных местах юзается
Aleksandr
в прямом
Aleksandr
хочет Handle
Aleksandr
type Handle func(http.ResponseWriter, *http.Request, Params)
Aleksandr
вот Handle
Aleksandr
это функция
Aleksandr
ее метод и хочет
Aleksandr
нет
Vasily
у httprouter свой Handle
не тот который в стандартной либе, в нём больше параметров
Aleksandr
имена не причем. утиная типизация
Vasily
дам в доке даже есть про это
Anatoly
а что ты прочитал про утиную типизацию? или не стал из-за недостатка времени?
Anatoly
ну? есть у тебя в структуре метод Serve() - утка
Aleksandr
и? дальше развивай мысль. как ты пришел от Handle к http.Handle?
Aleksandr
чушь
Aleksandr
ты пришел. мы не пришли
Anatoly
"что-то мне домой захотелось" (с)
Aleksandr
метод GET хочет httprouter.Handle. Причем тут http.Handle?
Aleksandr
ну вот ты и понял го) поздравляю
Aleksandr
ты не верно понял.
Aleksandr
http.Handler - это интерфейс. его нельзя принять. но можно принять реализацию интерфейса
Aleksandr
и это реализация была бы и http.Handle и httprouter.Handle одновременно
Aleksandr
(только интерфейсы то разные)
Aleksandr
по сигнатуре
Aleksandr
это уже про то как использовать код других пакетов
Aleksandr
Handle - это Handle текущего пакета. просто имя пакета опускаем.
Aleksandr
http.Handle - соответственно пакет http
Aleksandr
клади отдельно экшны)
Aleksandr
import "./Controllers"
не юзай такую нотацию
Aleksandr
коллега, я думаю тебе вообще-то надо с начала начать. пройти first steps, go by example итд
Aleksandr
ты очень быстро захотел влиться, пропустив азы языка
Aleksandr
не понимаешь типизацию, GOPATH, пакеты итд
Aleksandr
а это базис
Aleksandr
а у нас dep юзают)
Aleksandr
а там не надо писать еще один json
Aleksandr
он сам соберет
Aleksandr
да
Zloy-Dobry
о я так наступал тож
Aleksandr
его год назад вроде только начали пилить.
Aleksandr
ты про Godep
Aleksandr
полный путь начиная от корня
Aleksandr
не ./Controllers, а package1.package2.Controllers
Aleksandr
ничего не надо
Aleksandr
main не пишется
Aleksandr
просто Controllers
Aleksandr
относительные пути возможны, но их никто не использует (кроме тебя)
Aleksandr
не понимаешь типизацию, GOPATH, пакеты итд
Aleksandr
да понимаю, GOPATH как вы понимаете зло 🙁
Aleksandr
я и говорю
Aleksandr
а должен лежать в
Aleksandr
у тебя GOPATH может быть множественный