Inspired from Go by Example by Mark McGranaghan and Eli Bendersky (Creative Commons Attribution 3.0 Unported License), this is an attempt to document the Go learning journey with additional details and features. Of course, thanks to ChatGPT for most of the explanations ๐ฆพ
This is an open-source effort meant to be freely accessible by the community.
For contributing with code, here's a quick guideline ๐
- Go to https://github.com/ineelhere/code-with-go
- You need to either clone the repository or fork it
- Create a branch of your own, preferably from the
dev
branch - Commit your changes
- Raise a PR to the
dev
branch - Now you chill while I review the code๐ฅค
- Code With Go! ๐
- Hello World
- Values
- Variables
- Constants
- For Loop
- If Else
- Switch
- Array
- Slice
- Map
- Range
- Functions
- Multiple Return Values
- Variadic Functions
- Closure
- Recursion
- Pointers
- Strings and Runes
- Structs
- Methods
- Interfaces
- Struct Embedding
- Generics
- Error
- Goroutines
- Channels
- Channel Buffering
- Channel Synchronization
- Channel Directions
- Select
- Timeouts
- Non-Blocking Channel Operations
- Closing Channels
- Range over Channels
- Timers
- Tickers
- Worker Pools
- Wait Groups
- Rate Limiting
- Atomic Counters
- Mutexes
- Stateful Goroutines
- Sorting
- Sorting by Functions
- Panic
- Defer
- Recover
- String Functions
- String Formatting
- Text Templates
- Regular Expressions
- JSON
- XML
- Time
- Epoch
- Time Formatting / Parsing
- Random Numbers
- Number Parsing
- SHA256 Hashes
- Base64 Encoding
- Reading Files
- Writing Files
- Line Filters
- File Paths
- Directories
- Temporary Files and Directories
- Embed Directive
- Testing and Benchmarking
- Command-Line Arguments
- Command-Line Flags
- Command-Line Subcommands
- Environment Variables
- Logging
- HTTP Client
- HTTP Server
- Context
- Spawning Processes
- Exec'ing Processes
- Signals
- Exit
ยฉ Indraneel Chakraborty
| 2024 ๐งโ๐ป