Empty Interface
Start course
Difficulty
Beginner
Duration
2h 17m
Students
3672
Ratings
4.6/5
starstarstarstarstar-half
Description

If you're thinking about engineering the next big dotcom application then you should seriously consider using Go!! 

The Go Programming Language is without doubt one of the hottest languages to learn, particularly in this cloud native era. More and more companies are adopting Go to engineer highly performant, stable and maintainable applications. Popular projects such as Docker, Kubernetes, Terraform, Etcd, Istio, InfluxDB have all been built successfully using Go!! 

This introductory level training course is designed to bring you quickly up to speed with the many key features that the Go programming language provides. You'll also learn how to setup your own Go development environment - consisting of the Go toolchain, Visual Studio Code, and several related Go based extensions - all to ensure that you are able to be productive writing your own source code.

We’d love to get your feedback on this course, so please give it a rating when you’re finished. If you have any queries or suggestions, please contact us at support@cloudacademy.com.

Learning Objectives

By completing this course, you will:

  • Learn about what makes Go a great language
  • Learn how to install the Go toolchain
  • Learn how to setup Visual Studio Code to edit and debug Go programs
  • Learn how to work with the Go Playground to test and run snippets of Go code
  • Learn and understand the basic Go language syntax and features
  • Learn how to use the Go tool chain commands to compile, test, and manage Go code
  • And finally, you’ll learn how to work with and manage Go modules for module dependency management

Intended Audience

This course is intended for:

  • Anyone interested in learning the Go Programming Language
  • Software Developers interested in using Go to compile and test Go based applications
  • DevOps practitioners looking to learn about Go to support Go based applications

Prerequisites

To get the most from this course, you should have at least:

  • A basic understanding of software development and the software development life cycle

Source Code

All sample Go source code as used and demonstrated within this course can be found here:

Transcript

- [Jeremy Cook] The empty interface type in Go denoted by the keyword interface and empty curly brackets is used to indicate that a variable can hold values of any type, since by definition every type implements at least zero methods. The empty interface is often useful when you need to accommodate an unknown set of types that a function may consume. As per the example given here, the anonymous variadic function declared on lines 17 to 22 takes in a list typed as the empty interface.

Internally to the function, the list is then iterated across using the range keyword, with each value and its concrete type printed out using the Printf function on line 19. Running this example results in the following output. Being able to call a function with as many variables, of differing types, helps to reduce code bloat by condensing and generalizing many functions into a singular multipurpose function. Compiler type safety checking is given up when taking this approach, so you need to consider your requirements carefully when doing this. 

In summary, you've observed: how to use and declare variables that are of type empty interface and that all Go types are of type empty interface since by definition every type implements at least zero methods.

About the Author
Students
125860
Labs
66
Courses
113
Learning Paths
180

Jeremy is a Content Lead Architect and DevOps SME here at Cloud Academy where he specializes in developing DevOps technical training documentation.

He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 25+ years. In recent times, Jeremy has been focused on DevOps, Cloud (AWS, Azure, GCP), Security, Kubernetes, and Machine Learning.

Jeremy holds professional certifications for AWS, Azure, GCP, Terraform, Kubernetes (CKA, CKAD, CKS).

Covered Topics