Description
In this course, you will learn :
- Using Go Routines and Channels, you can create massively concurrent programmes.
- Discover Go's advanced features.
- Recognize the distinctions between commonly used data structures.
- Hundreds of included quiz questions will allow you to demonstrate your knowledge.
- Use interfaces to significantly simplify complex programmes.
- Use types to future-proof your code and make refactoring easier.
Syllabus :
1. A Simple Start
- Boring Ol' Hello World
- Five Important Questions
- Go Packages
- Import Statements
- File Organization
- How to Access Course Diagrams
2. Deeper Into Go
- Variable Declarations
- Functions and Return Types
- Slices and For Loops
- OO Approach vs Go Approach
- Custom Type Declarations
- Receiver Functions
- Creating a New Deck
- Slice Range Syntax
- Multiple Return Values
- Byte Slices
- Deck to String
- Joining a Slice of Strings
- Saving Data to the Hard Drive
- Reading From the Hard Drive
- Error Handling
- Shuffling a Deck
- Random Number Generation
- Testing With Go
- Writing Useful Tests
- Asserting Elements in a Slice
- Testing File IO
3. Organizing Data With Structs
- Structs in Go
- Defining Structs
- Declaring Structs
- Updating Struct Values
- Embedding Structs
- Structs with Receiver Functions
- Pass By Value
- Structs with Pointers
- Pointer Operations
- Pointer Shortcut
- Gotchas With Pointers
- Reference vs Value Types
4. Maps
- What's a Map?
- Manipulating Maps
- Iterating Over Maps
- Differences Between Maps and Structs
5. Interfaces
- Purpose of Interfaces
- Problems Without Interfaces
- Interfaces in Practice
- Rules of Interfaces
- Extra Interface Notes
- The HTTP Package
- Reading the Docs
- More Interface Syntax
- Interface Review
- The Reader Interface
- More on the Reader Interface
- Working with the Read Function
- The Writer Interface
- The io.Copy Function
- The Implementation of io.Copy
- A Custom Writer
6. Channels and Go Routines
- Website Status Checker
- Printing Site Status
- Serial Link Checking
- Go Routines
- Theory of Go Routines
- Channels
- Channel Implementation
- Blocking Channels
- Receiving Messages
- Repeating Routines
- Alternative Loop Syntax
- Sleeping a Routine
- Function Literals
- Channels Gotcha