/go-practice-labs

[Archived] Go Practice Labs | This repo collects 79 of programming labs exercises for Go Practice Labs. This course contains lots of labs for Go, each lab is a small Go project with detailed guidance and solutions. You can practice your Go skills by completing these labs, improve your coding skil...

Go Practice Labs

Go Practice Labs

Start-Learning

This course contains lots of labs for Go, each lab is a small Go project with detailed guidance and solutions. You can practice your Go skills by completing these labs, improve your coding skills, and learn how to write clean and efficient code.

Golang

Environment

LabEx is an interactive, hands-on learning platform dedicated to coding and technology. It combines labs, AI assistance, and virtual machines to provide a no-video, practical learning experience.

  • A strict β€œLearn by Doing” approach with exclusive hands-on labs and no videos.
  • Interactive online environments within the browser, with automated step-by-step checks.
  • A structured content organization with the Skill Tree based learning system.
  • A growing learning resource of 30 Skill Trees and over 6,000 Labs.
  • The AI learning assistant Labby, built on ChatGPT, providing a conversational learning experience.

Learn more about LabEx VM.

Exercises

Index Name Difficulty Practice
01 πŸ“– Go Basics: Value Types Exploration β˜…β˜†β˜† Start Lab
02 πŸ“– Golang Constants Comprehension β˜…β˜†β˜† Start Lab
03 πŸ“– Exploring Golang Variable Declarations β˜…β˜†β˜† Start Lab
04 πŸ“– String Formatting Fundamentals in Golang β˜…β˜†β˜† Start Lab
05 πŸ“– String Manipulation in Go β˜…β˜†β˜† Start Lab
06 πŸ“– Strings and Runes β˜…β˜†β˜† Start Lab
07 πŸ“– Arrays Manipulation in Golang β˜…β˜†β˜† Start Lab
08 πŸ“– Go Slices: A Hands-on β˜…β˜†β˜† Start Lab
09 πŸ“– Creating and Manipulating Go Maps β˜…β˜†β˜† Start Lab
10 πŸ“– Struct Manipulation in Go β˜…β˜†β˜† Start Lab
11 πŸ“– Golang Pointers Comprehension β˜…β˜†β˜† Start Lab
12 πŸ“– Golang For Loop Understanding β˜…β˜†β˜† Start Lab
13 πŸ“– Go If-Else Branching β˜…β˜†β˜† Start Lab
14 πŸ“– Concise Switch Statement Explanation β˜…β˜†β˜† Start Lab
15 πŸ“– Functions in Go Programming β˜…β˜†β˜† Start Lab
16 πŸ“– Multiple Return Values β˜…β˜†β˜† Start Lab
17 πŸ“– Variadic Functions in Go β˜…β˜†β˜† Start Lab
18 πŸ“– Go Programming Language Methods β˜…β˜†β˜† Start Lab
19 πŸ“– Go Interfaces Tutorial β˜…β˜†β˜† Start Lab
20 πŸ“– Golang Struct Embedding β˜…β˜†β˜† Start Lab
21 πŸ“– Exploring Go's Range Keyword β˜…β˜†β˜† Start Lab
22 πŸ“– Handling Errors in Golang β˜…β˜†β˜† Start Lab
23 πŸ“– Golang Error Handling Proficiency β˜…β˜†β˜† Start Lab
24 πŸ“– Deferred Function Execution in Go β˜…β˜†β˜† Start Lab
25 πŸ“– Handling Panics with Golang Recover β˜…β˜†β˜† Start Lab
26 πŸ“– Generics in Go 1.18 β˜…β˜†β˜† Start Lab
27 πŸ“– Creating Closures with Anonymous Functions in Go β˜…β˜†β˜† Start Lab
28 πŸ“– Recursive Functions in Golang β˜…β˜†β˜† Start Lab
29 πŸ“– Golang Goroutines Concurrency β˜…β˜†β˜† Start Lab
30 πŸ“– Buffered Channels in Go Programming β˜…β˜†β˜† Start Lab
31 πŸ“– Golang Channel Function Parameters β˜…β˜†β˜† Start Lab
32 πŸ“– Synchronizing Goroutines with Channels β˜…β˜†β˜† Start Lab
33 πŸ“– Golang Channels Concurrency β˜…β˜†β˜† Start Lab
34 πŸ“– Golang Channel Communication with Workers β˜…β˜†β˜† Start Lab
35 πŸ“– Non-Blocking Channel Operations β˜…β˜†β˜† Start Lab
36 πŸ“– Range Over Channels β˜…β˜†β˜† Start Lab
37 πŸ“– Go Select Statement Demonstration β˜…β˜†β˜† Start Lab
38 πŸ“– Implementing Go Timeouts with Channels β˜…β˜†β˜† Start Lab
39 πŸ“– Golang Timer and Ticker Tutorial β˜…β˜†β˜† Start Lab
40 πŸ“– Timers and Tickers β˜…β˜†β˜† Start Lab
41 πŸ“– Worker Pool with Goroutines and Channels β˜…β˜†β˜† Start Lab
42 πŸ“– Waitgroups: Coordinating Concurrent Goroutines β˜…β˜†β˜† Start Lab
43 πŸ“– Implementing Rate Limiting in Go β˜…β˜†β˜† Start Lab
44 πŸ“– Atomic Counters in Concurrent Go β˜…β˜†β˜† Start Lab
45 πŸ“– Concurrent Data Access with Mutexes β˜…β˜†β˜† Start Lab
46 πŸ“– Concurrent Goroutine Synchronization β˜…β˜†β˜† Start Lab
47 πŸ“– Reading Files in Go β˜…β˜†β˜† Start Lab
48 πŸ“– Write Files in Go β˜…β˜†β˜† Start Lab
49 πŸ“– Concise Go Text Transformation Program β˜…β˜†β˜† Start Lab
50 πŸ“– File Path Handling in Golang β˜…β˜†β˜† Start Lab
51 πŸ“– Working with Directories in Go β˜…β˜†β˜† Start Lab
52 πŸ“– Temporary Files and Directories β˜…β˜†β˜† Start Lab
53 πŸ“– Embedding Files in Go Binaries β˜…β˜†β˜† Start Lab
54 πŸ“– Sorting Built-in Types in Go β˜…β˜†β˜† Start Lab
55 πŸ“– Sorting by Functions β˜…β˜†β˜† Start Lab
56 πŸ“– Dynamic Content Generation with Golang Templates β˜…β˜†β˜† Start Lab
57 πŸ“– Golang Regular Expression Tutorial β˜…β˜†β˜† Start Lab
58 πŸ“– Golang JSON Encoding and Decoding β˜…β˜†β˜† Start Lab
59 πŸ“– Golang XML Mapping and Manipulation β˜…β˜†β˜† Start Lab
60 πŸ“– Go Time and Duration Exploration β˜…β˜†β˜† Start Lab
61 πŸ“– Golang Unix Epoch Time Retrieval β˜…β˜†β˜† Start Lab
62 πŸ“– Time Formatting and Parsing β˜…β˜†β˜† Start Lab
63 πŸ“– Random Number Generation in Go β˜…β˜†β˜† Start Lab
64 πŸ“– Parse Numbers in Go β˜…β˜†β˜† Start Lab
65 πŸ“– Parsing URLs in Go β˜…β˜†β˜† Start Lab
66 πŸ“– Compute SHA256 Hashes in Go β˜…β˜†β˜† Start Lab
67 πŸ“– Base64 Encoding in Golang β˜…β˜†β˜† Start Lab
68 πŸ“– Testing and Benchmarking β˜…β˜†β˜† Start Lab
69 πŸ“– Command-Line Argument Handling in Go β˜…β˜†β˜† Start Lab
70 πŸ“– Command-Line Flag Parsing in Go β˜…β˜†β˜† Start Lab
71 πŸ“– Command Line Subcommands β˜…β˜†β˜† Start Lab
72 πŸ“– Fundamentals of Unix Environment Variables β˜…β˜†β˜† Start Lab
73 πŸ“– Golang HTTP Request Handling β˜…β˜†β˜† Start Lab
74 πŸ“– Basic HTTP Server in Go β˜…β˜†β˜† Start Lab
75 πŸ“– Golang Context Cancellation Demonstration β˜…β˜†β˜† Start Lab
76 πŸ“– Replacing Go Process with exec β˜…β˜†β˜† Start Lab
77 πŸ“– Spawning External Processes in Go β˜…β˜†β˜† Start Lab
78 πŸ“– Handling Unix Signals in Go β˜…β˜†β˜† Start Lab
79 πŸ“– Exit Function in Go β˜…β˜†β˜† Start Lab

More