Unit 5: Go Programming Concepts
16 hrs Module 1 - Getting Started: Go Runtime and Compilations, Keywords and Identifiers, Constants and Variables, Operators and Expressions, Local Assignments, Booleans, Numerics, Characters, Pointers and Addresses, Strings Module 2 – Constructs: if-else and switch, for Statements, Counter-controlled Iterations, Condition-controlled Iterations, Range Loops, using break and continue Module 3 – Functions: Parameters and Return Values, Call by Value and Reference, Named Return Variables, Blank Identifiers, Variable Argument Parameters, Using defer statements, Recursive Functions, Functions as Parameters, Closures Module 4 - Working with Data: Array Literals, Multidimensional Arrays, Array Parameters, Slices and Slice Parameters, Multidimensional Slices, Reslicing, Maps and Map Parameters, Map Slices, Structures and Structure Parameters, Structure Tags and Fields, Embedded Structures, Recursive Structures Module 5 - Methods and Interfaces: Method Declarations, Functions vs. Methods, Pointer and Value Receivers, Method Values and Expressions, Interface Types and Values, Type Assertions and Type Switches, Method Sets with Interfaces, Embedded Interfaces, Empty Interfaces, Working with Interfaces Module 6 - Goroutines and Channels: Concurrency vs. Parallelism, Goroutine Functions and Lambdas, Wait Groups, Channels, Sending and Receiving, Unbuffered and Buffered Channels, Directional Channels, Multiplexing with select, Timers and Tickers Module 7 - Packages and Testing: Packages and Workspaces, Exporting Package Names, Import Paths and Named Imports, Package Initializations, Blank Imports, Unit Testing with Test Functions, Table Tests and Random Tests, Benchmarking Module 8 - Working with Go: Files and Directories, Reading Directories, Reading Files, Writing Files, Copying Files, Error Strategies, Panic and Recover, Package Error Handling, Regular Expressions