Guides
The Go language itself, and the data structures and algorithms you build with it. Every page teaches one subject with runnable examples.
The Language
- Hello, World /hello-world
- Set up Environment /getting-started
- Packages and Imports /packages
- Types /types
- Variables /variables
- Strings /strings
- Runes /runes
- Bytes /bytes
- Bitwise Operators /bitwise
- Arrays /arrays
- Slices /slices
- Maps /maps
- Constants /constants
- iota / Enums /iota
- Functions /functions
- Structs /structs
- Methods / Receivers /receivers
- Interfaces /interfaces
- Pointers /pointers
- Control Flow /control-flow
- Loops /for-loops
- If / Else /if-else
- Select /select
- Switch /switch
- Generics /generics
- Goto /goto
- Concurrency /concurrency
- Goroutines /goroutines
- Channels /channels
- Mutexes /mutexes
- Atomic Operations /atomic-operations
- Worker Pools /worker-pools
- Defer /defer
Data Structures and Algorithms
- Overview /data-structures
- Stack /stack
- Queue /queue
- Ring /ring
- Set /set
- Trie /trie
- Linked List /linked-list
- Doubly-Linked List /doubly-linked-lists
- Quick Sort /quick-sort
- Binary Search /binary-search
- Merge Sort /merge-sort
- Bubble Sort /bubble-sort
- Insertion Sort /insertion-sort
- Graph /graph
- Breadth-First Search /breadth-first-search
- Depth-First Search /depth-first-search
- Dijkstra's Algorithm /dijkstra
- A* Search Algorithm /a-star
- Heap /heap
- Dynamic Array /dynamic-array
- Fibonacci /fibonacci
- Euclidean Algorithm /euclidean
- Manhattan Distance /manhattan-distance
- PageRank /pagerank