Subscribe to the Ardan Labs Insider

You’ll get our FREE Video Series & special offers on upcoming training events along with notifications on our latest blog posts.

Included in your subscription
  • Access to our free video previews
  • Updates on our latest blog posts
  • Discounts on upcoming events

Valid email required.

Submit failed. Try again or message us directly at

Thank You for Subscribing

Check your email for confirmation.

Interfaces 101 : Interface Type Assertion Ep. 6

Author image

Ardan Labs


In episode 5, Miki wrote a function that counted the number of lines in a file with interfaces. The first thing his function did was to open a file with Go’s os.Open function. Miki chose this method because the variable returned by said function implements the io.Reader interface which is crucial for the next step. The remaining parts of this function consisted of a primitive type alias that satisfied the io.Writer interface and tracked the number of lines by increasing the Write method’s receiver value. To put the process in motion, Miki will invoke function io.Copy to trigger his type alias’ Write method and in essence, count the number of lines in the file.

In this video, Miki will write a versatile logging library with Go interfaces.The first prototype he proposes consists of a type with an io.Writer interface field to handle writing data for the logger. Upon completing the first design, Miki realizes his type is missing a Sync function, which will enable developers to move data into stable storage while logging. To meet this requirement, Miki will create a new interface type with a Sync function. Watch and learn how you can use type assertions to write simple, yet effective, code.

Things you will learn in this video

  • How to properly perform a type assertion on an interface.
  • How to move data from memory to stable storage.
  • Tips on designing an interface in Go.


Go Training

We have taught Go to thousands of developers all around the world since 2014. There is no other company that has been doing it longer and our material has proven to help jump start developers 6 to 12 months ahead of their knowledge of Go. We know what knowledge developers need in order to be productive and efficient when writing software in Go.

Our classes are perfect for both experienced and beginning engineers. We start every class from the beginning and get very detailed about the internals, mechanics, specification, guidelines, best practices and design philosophies. We cover a lot about "if performance matters" with a focus on mechanical sympathy, data oriented design, decoupling and writing production software.

Capital One
Red Ventures

Interested in Ultimate Go Corporate Training and special pricing?

Let’s Talk Corporate Training!

Join Our Online
Education Program

Our courses have been designed from training over 30,000 engineers since 2013, and they go beyond just being a language course. Our goal is to challenge every student to think about what they are doing and why.