2017
9 hours
Getting Started
3 Environment Setup
4 VSCode Installation
5 Go Support in VSCode
A Simple Start
6 Boring Ol’ Hello World
7 Five Important Questions
8 Go Packages
9 Import Statements
10 File Organization
Deeper Into Go
12 Project Overview
13 New Project Folder
14 Variable Declarations
15 Functions and Return Types
16 Slices and For Loops
17 OO Approach vs Go Approach
18 Custom Type Declarations
19 Receiver Functions
20 Creating a New Deck
21 Slice Range Syntax
22 Multiple Return Values
23 Byte Slices
24 Deck to String
25 Joining a Slice of Strings
26 Saving Data to the Hard Drive
27 Reading From the Hard Drive
28 Error Handling
29 Shuffling a Deck
30 Random Number Generation
31 Testing With Go
32 Writing Useful Tests
33 Asserting Elements in a Slice
34 Testing File IO
35 Project Review
Organizing Data With Structs
36 Structs in Go
37 Defining Structs
38 Declaring Structs
39 Updating Struct Values
40 Embedding Structs
41 Structs with Receiver Functions
42 Pass By Value
43 Structs with Pointers
44 Pointer Operations
45 Pointer Shortcut
46 Gotchas With Pointers
47 Reference vs Value Types
Maps
48 What’s a Map_
49 Manipulating Maps
50 Iterating Over Maps
51 Differences Between Maps and Structs
./06 Interfaces
52 Purpose of Interfaces
53 Problems Without Interfaces
54 Interfaces in Practice
55 Rules of Interfaces
56 Extra Interface Notes
57 The HTTP Package
58 Reading the Docs
59 More Interface Syntax
60 Interface Review
61 The Reader Interface
62 More on the Reader Interface
63 Working with the Read Function
64 The Writer Interface
65 The io_Copy Function
66 The Implementation of io_Copy
67 A Custom Writer
Channels and Go Routines
68 Website Status Checker
69 Printing Site Status
70 Serial Link Checking
71 Go Routines
72 Theory of Go Routines
73 Channels
74 Channel Implementation
75 Blocking Channels
76 Receiving Messages
77 Repeating Routines
78 Alternative Loop Syntax
79 Sleeping a Routine
80 Function Literals
81 Channels Gotcha!