[#] Краш-курс по интерфейсам в Go
habrabot(difrex,1) — All
2016-02-10 17:00:07


Интерфейсы в Go представляют собой одну из отличительных особенностей языка, формирующих способ решения задач. При схожести с интерфейсами в других языках, интерфейсы Go всё же имеют важные отличия и это поначалу приводит к избыточному переиспользованию интерфейсов и путанице в том, как и когда их использовать. Это нормально, но давайте попробуем разобраться, в чем же особенность интерфейсов в Go, как они устроены, почему так важны и что значит ортогональность интерфейсных типов и структурных типов в Go. В этой статье вы узнаете:

* в чем отличие от интерфейсов в Java
* важные и неочевидные последствия этих отличий
* как устроены интерфейсы под капотом
* вспомним про пустой интерфейс (interface\{\})
* затронем сакральную тему про дженерики
* разберемся, кто и зачем должен создавать интерфейс
* и постараемся научиться не абьюзить интерфейсы и начать жить

![Header][1] _([artwork by Svitlana Agudova][2])_ [Читать дальше →][3]

[1]: https://habrastorage.org/files/ac1/5db/b35/ac15dbb350f1475ba76ac01b3b66afdc.png
[2]: http://agudova.com/portfolio/for-golang-community/
[3]: https://habrahabr.ru/post/276981/#habracut