This repository is a comprehensive learning resource for Go (Golang), featuring core language concepts, data structures, algorithms, and advanced topics. It focuses on performance, clarity, and idiomatic code, with detailed technical reference tables for the standard library.
The repository is organized by topic to make finding specific information and examples easy.
1. Concepts
Core language fundamentals and mechanics.
- Variables: Declarations, types, and scope.
- Functions: Technical table of function features, closures, and variadic parameters.
- Structs: Custom types and composition.
- Interfaces: Duck typing and decoupling in Go.
- Errors: Idiomatic error handling patterns.
- Language Spec: Official Go specification files.
Built-in and custom data structure implementations.
- Slices: Reference table for slice operations and the
slicespackage. - Maps: Reference table for map operations and the
mapspackage. - Strings: Reference table for
stringsandstrconvpackages. - Linked Lists: Custom implementations and
container/list. - Stacks: Slice-based and linked-list stack implementations.
- Trees: Binary trees, BSTs, and traversal algorithms.
3. Algorithms
Common algorithms implemented in Go.
- Sorting: Quick Sort, Merge Sort, and the
sortpackage reference. - Searching: Binary search and other search techniques.
- Recursion: Factorials, Fibonacci, and recursive patterns.
Detailed guides and technical tables for Go's standard packages.
- Built-in Functions: Full technical table of all Go built-ins (
append,make,len,clear, etc.). - OS: File system, environment variables, and process management.
- IO: Readers, writers, and stream manipulation.
- Utilities: Common helper functions, filters, and file operations.
Complex systems and concurrent programming.
- Concurrency: Goroutines, channels, and synchronization primitives.
- Networking: TCP/UDP, JSON fetching, and URL parsing.
- Web: HTTP servers, templates, and REST API examples.
Each directory contains a main.go or specific example files. You can run them directly using the Go tool:
# Example: Run the built-in functions demo
go run standard_library/builtins/main.go- Technical Tables: Most documentation files include "Quick Reference" tables for functions, methods, and types.
- Idiomatic Code: Examples follow Go best practices and utilize modern features (Go 1.21+ where applicable).
- Comprehensive Coverage: From basic variables to advanced concurrency and networking.
Happy Coding in Go!