Interfaces are everywhere in Go. The basic error type is an interface, writing with the fmt package means you are probably using an interface, and there are countless other instances where they pop up. In this episode Mark, Mat, Johnny, and Jon discuss interfaces at length, exploring what they are, how they are using them in their own projects, as well as tips for how you can leverage them in your own code.

Interfaces are everywhere in Go. The basic error type is an interface, writing with the fmt package means you are probably using an interface, and there are countless other instances where they pop up. In this episode Mark, Mat, Johnny, and Jon discuss interfaces at length, exploring what they are, how they are using them in their own projects, as well as tips for how you can leverage them in your own code.

Leave us a comment

Changelog++ members support our work, get closer to the metal, and make the ads disappear. Join today!

Sponsors:



Linode – Our cloud of choice and the home of Changelog.com. Deploy a fast, efficient, native SSD cloud server for only $5/month. Get 4 months free using the code changelog2019 OR changelog2020. To learn more and get started head to linode.com/changelog.
The Brave Browser – Browse the web up to 8x faster than Chrome and Safari, block ads and trackers by default, and reward your favorite creators with the built-in Basic Attention Token. Download Brave for free and give tipping a try right here on changelog.com.
Algorithms with Go – A free Go course where panelist Jon Calhoun teaches you how algorithms and data structures work, how to implement them in Go code, and where to practice at. Great for learning Go, learning about algorithms for the first time, or refreshing your algorithmic knowledge.

Featuring:


Jon Calhoun – Twitter, GitHub, WebsiteMat Ryer – Twitter, GitHub, LinkedIn, WebsiteJohnny Boursiquot – Twitter, GitHub, WebsiteMark Bates – Twitter, GitHub, Website

Show Notes:



Go Issue #20280 - An issue about a cancellable io.Copy
Cancellable io.Reader example - An example of how to use interface chaining to create a cancellable io.Reader.
io.TeeReader - A reader mentioned on the podcast that lets you write everything you read to an output.
io.MultiWriter - A writer mentioned on the podcast that lets you write to multiple outputs.
Buffalo plugins package - Interfaces and helper utilities for writing Buffalo’s Go plugins.
Buffalo plugin implementations - Current plugin implementations for Buffalo.

Something missing or broken? PRs welcome!

Twitter Mentions