Size: a a a

2020 May 05

DP

Daniel Podolsky in Go-go!
вот только у нас упор не на реализацию, а на ожидания приемника
источник

DP

Daniel Podolsky in Go-go!
и надо постоянно на этом акцентировать внимание, потому, что в других языках не так

и еще потому, что стандартная либа эту идею слегка размывает: по идее, каждый должен у себя объявлять интерфейс Reader, а не ссылаться на io.Reader
источник

AK

Anton Kucherov in Go-go!
За исключением случаев когда он хочет реализовать io.Reader для того чтобы стандартная библиотека могла его использовать. Правильно я понимаю? Т.е. stdlib здесь приемник в данном кейсе
источник

DP

Daniel Podolsky in Go-go!
нет же!
источник

DP

Daniel Podolsky in Go-go!
любой тип с Read([]byte) (int, error) можно присвоить io.Reader
источник

AK

Anton Kucherov in Go-go!
Ну да, любая имплементация с этим методом будет удовлетворять (в Go неявно, не надо этого объявлять) интерфейсу io.Reader и не только ему. Так же всем другим интерфейсам в которых объявлен такой же метод. :)
источник

DP

Daniel Podolsky in Go-go!
да
источник

DP

Daniel Podolsky in Go-go!
и почему-то это вызывает у людей жестокий ступор
источник

AK

Anton Kucherov in Go-go!
Возможно. Мне как то очень легко это понимание далось. Хотя я из PHP  и JS пришел.
источник

AK

Anton Kucherov in Go-go!
Я не очень понимаю разницу. Я имею ввиду в некоторых языках нужно явно объявлять интерфейсы и связывать их с реализацией. Это накладывает определенные ограничения в том числе на то куда их нужно класть. Но по сути своей как я вижу, интерфейсы везде используются для одних и тех же целей в целом. Разве нет?
источник

DP

Daniel Podolsky in Go-go!
цели одни - средства разные
источник

@

@Sehat in Go-go!
блин, что-то очень сложно. Вот есть структура и интерфейс. У обоих есть методы и свойства, которые присущи классам из других языков, в чём разница между ними и почему их 2?
источник

DP

Daniel Podolsky in Go-go!
в go интерфейс вообще не имеет смысла иначе, как в контексте ожиданий приемника
источник

AK

Anton Kucherov in Go-go!
@Sehat
блин, что-то очень сложно. Вот есть структура и интерфейс. У обоих есть методы и свойства, которые присущи классам из других языков, в чём разница между ними и почему их 2?
В Go у интерфейсов есть только методы. Без имплементации причем
источник

DP

Daniel Podolsky in Go-go!
@Sehat
блин, что-то очень сложно. Вот есть структура и интерфейс. У обоих есть методы и свойства, которые присущи классам из других языков, в чём разница между ними и почему их 2?
а вы с какого языка пришли?
источник

@

@Sehat in Go-go!
Daniel Podolsky
а вы с какого языка пришли?
python
источник

AK

Anton Kucherov in Go-go!
Ох, вот тут я удаляюсь ))
источник

DP

Daniel Podolsky in Go-go!
не помогу - я про питон не знаю почти ничего
источник

AK

Anton Kucherov in Go-go!
😂
источник

DZ

Dmitry Zherebko in Go-go!
гошники разбежались как крысы от питона
источник