Quack like a wha-?
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.
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
ORchangelog2020
. 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, Website
- Mat Ryer – Twitter, GitHub, LinkedIn, Website
- Johnny Boursiquot – Twitter, GitHub, Website
- Mark 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!