https://www.educative.io/blog/golang-tutorial#advanced https://go.dev/doc/effective_go https://changelog.com/gotime https://go.dev/blog/all https://www.carlomaiorano.me/golang/2019/10/03/generating-code-golang.html https://go-proverbs.github.io/ https://golangbyexample.com/golang-comprehensive-tutorial/ https://www.golangprograms.com/advance-programs.html https://gobyexample.com/ https://go.dev/doc/tutorial/ https://go.dev/doc/ https://roadmap.sh/golang https://github.com/Alikhll/golang-developer-roadmap https://www.gopherguides.com/courses/web-api-golang-training https://www.gopherguides.com/courses/profiling-optimizing-golang-training https://www.gopherguides.com/courses/advanced-golang-training https://www.gopherguides.com/courses/mastering-golang-training
- JSON-RPC: a tale of interfaces
- Go's Declaration Syntax
- Defer, Panic, and Recover
- Go Concurrency Patterns: Timing out, moving on
- Go Slices: usage and internals
- A GIF decoder: an exercise in Go interfaces
- Error Handling and Go
- Organizing Go code
- JSON and Go - using the json package.
- Gobs of data - the design and use of the gob package.
- The Laws of Reflection - the fundamentals of the reflect package.
- The Go image package - the fundamentals of the image package.
- The Go image/draw package - the fundamentals of the image/draw package.
- Using Go Modules - an introduction to using modules in a simple project.
- Migrating to Go Modules - converting an existing project to use modules.
- Publishing Go Modules - how to make new versions of modules available to others.
- Go Modules: v2 and Beyond - creating and publishing major versions 2 and higher.
- Keeping Your Modules Compatible - how to keep your modules compatible with prior minor/patch versions.
- About the Go command - why we wrote it, what it is, what it's not, and how to use it.
- Debugging Go Code with GDB
- Data Race Detector - a manual for the data race detector.
- A Quick Guide to Go's Assembler - an introduction to the assembler used by Go.
- C? Go? Cgo! - linking against C code with cgo.
- Godoc: documenting Go code - writing good documentation for godoc.
- Profiling Go Programs
- Introducing the Go Race Detector - an introduction to the race detector.
- Variables in Go -- Complete Guide
- Understanding var keyword in golang
- Scope of a variable in golang
- Naming conventions for variables and constant in golang
- Understanding := symbol or short variable declaration in golang
- Hello World in golang
- Constant in Golang
- Can constant be reassigned after its declaration in Go
- Constant in inner/outer scope in Golang
- Global and Local Constant in Golang
- Typed and Untyped constant in Golang
- Declaring a constant in Golang
- String constant in Golang
- Numeric/Integer/Float constant in Golang
- Boolean constant in Golang
- Character constant in Golang
- Multiple constant declarations in Golang
- Constant Map in Golang
- Constant struct in Go (Golang)
- Constant array or slice in Golang
- Understand if else in golang
- for loop in golang
- Switch Statement in Go
- fallthrough keyword in go
- for-range loop in Go
- Goto statement in Golang
- Packages and Modules in Go (Golang) -- Part 1
- Packages and Modules in Go (Golang) -- Part 2
- Modules in Golang
- Direct vs Indirect Dependencies in go.mod file in Go
- Manual download dependency from go.mod file in Golang
- Selection of the version of library or dependency in Golang
- Importing package from different module locally in Golang
- Importing package within the same module in Golang
- What does go mod tidy do in Golang
- Add a dependency to your project or module in Golang
- Executable and non-executable module in Golang
- //indirect for a dependency in go.mod file in Golang
- Understanding Module name or module import path in Golang
- Vendor dependencies of a module in Golang
- Understanding go.sum and go.mod file in Golang
- Package vs Module in Golang
- Remove a dependency from a module in Golang
- Init function in Golang
- Order of execution of a Go program
- Nested Packages in Golang
- Package Name and Directory/Folder Name in Golang- Does they need to be the same
- Blank Identifier in import in Golang
- Import same package name or Aliasing while importing packages in Golang
- Understanding Array in golang
- Understanding slice in golang
- Multi-Dimensinal Array and Slice in golang
- Copy an array or slice in golang
- Different ways of iterating over array and slice.
- Check if an item exists in a slice
- Find and delete an item in a slice
- Find and delete an item in an array
- Print an array or slice elements in golang
- Declare/Initialize/Create an array or slice in golang
- Convert an array/slice into a JSON string in golang
- Append or Add to a Slice or Array in Golang
- Slice of Struct in Golang
- Slice of Map in Golang
- Slice or Array of Channels in Golang
- Slice or Array of Bool in Golang
- Create Slice or Array of Integers in Golang
- Create Slice or Array of Floats in Golang
- Create Slice or Array of Strings in Golang
- Sort a part of the slice in Golang
- Append one slice to another slice in Golang
- Different ways of iterating over map
- Length of a map in golang
- Maps in Golang -- Complete Guide
- Check if a key exists in a map in golang
- Update a key in map in golang
- Allowed key and value types for a map in golang
- Create/Initialize/Declare map in golang
- Conversion between map and JSON in Golang
- Convert a map to JSON in Golang
- Convert a JSON to map in Golang
- How to check if a map contains a key in Golang
- Struct in golang -- Complete Guide
- Creating and Intializaing struct variables in golang
- Pointer to a struct
- Pretty Print Struct Variables in golang
- Exported and non-exported fields of a struct
- Anonymous Fields in a Struct in golang
- Struct Equality in golang
- Accessing and Setting Struct fields in golang
- Nested Struct in golang
- Struct Field Meta or Tags in golang
- Conversion between struct and JSON in Golang
- How to intialize a struct that has another nested struct in Golang
- How to initialize a struct having an array or slice field in Golang
- How to access the struct from another package in Golang
- Method in golang -- Complete Guide
- Pointer Receiver for a method in Golang
- Method on a non-struct type in golang
- Method chaining in golang
- Interface in go
- Pass an Interface as an argument to a function
- Interface to struct
- Embedding interface in go
- Interface Comparison in golang
- Benefits of Interface in golang
- Pointer vs Value Receiver for interface in Go
- Declaring and Implementing an interface in golang
- Interface are implemented implicity in golang
- Type implementing multiple interfaces in go
- Print underlying type and value of an interface in golang
- Inner working or internal of an interface in Golang
- Non-Struct type implementing multiple interfaces in Golang
- Zero value of an Interface in golang
- Accessing underlying variable of an interface in Golang
- Channel in Go
- Inner working of Channels
- Channel as a function argument in Go
- Send and receive on a nil channel in Go
- Close operation on a channel in Go
- Channel Direction in Go
- Length and capacity of a channel in Go
- All operations/function on a channel in Go
- Read/receive all values from a channel in Go
- For-range loop for a channel in Go
- Goroutines in Go
- Number of currently running/active goroutines
- Wait for all goroutines to finish execution
- Receive or Fetch Return Value from a goroutine in golang
- Receive or fetch multiple return values from a goroutine in golang
- Pause Execution of a goroutine until an activity or event is completed in Golang
- Select Statement in Go
- Select statement with a for loop outside in Go
- Select with default case in Go
- Select with send operation in Golang
- Select statement with a nil channel in Golang
- Select versus switch in Golang
- Fallthrough keyword in select statement in Golang
- Break statement in Select in Golang
- Execute multiple case in Select statement in Golang
- Empty select or select with no case in Golang
- Select statement with timeout in Golang
- All data types in Go with examples
- All basic data types in Golang
- Know Size and Range of int and uint
- Default Value of all types with examples
- Character in Golang
- uintptr in Golang
- Rune in Golang
- Pointer in Golang
- Pointer to a Pointer in Golang
- * or dereferencing pointer in Golang
- Pointer Arithmetic in Golang
- Default zero value of pointer in Golang
- Check if string is a number
- Remove all white spaces from a string
- Write a multiline string in Go
- String compare in GO
- Check if a string contains another string in GO
- Split a string by delimiter in Go
- Get all the words from a sentence
- Join a string by delimiter or a separator in Go
- Check if string begins with a prefix in Go
- Check if string ends with a suffix in Go
- Convert string to lowercase in Go
- Convert string to uppercase in Go
- Capitalize a string in Go
- Trim prefix of a string in Go
- Trim suffix of a string in Go
- Trim leading and trailing whitespaces from a string
- Count instances of substring in a string in Go
- Find index of first instance of a substring in Go
- Replace all instances of a substring with another in Go
- Replace some instances of a substring with another in Go
- Replace a character with another in a string in Go
- Find the index of the last instance of a substring in Go
- Index character in a string in Go
- Generate all permutation of a string in Go
- Swap characters of a string in Go
- Swap two strings in Go
- Reverse a string in Go
- Find and detete a character in Go
- Find and delete a substring in Go
- Delete in a string by index in Go
- Create count/repeating copies of a string in GO
- Case insensitive comparison of two strings in Go
- Number of Characters in a string in Go
- Get ASCII code of any Alphabet or Number in Go
- Iterate over a string in golang
- Length of a string in golang
- ASCII digit to the character in Golang
- Write to write or print backslash in a string in Golang
- Print string with double quotes in Golang
- Sort a string in Golang
- Ceil of a number in Go
- Floor of a number in Go
- Get Integer value of a float in Go
- Round a number in Go
- Round Even a number in Go
- Remove Decimarl parts of a float in Go
- Get Absolute value of a number
- Pi value in Go
- Square root of a number in Go
- Cube Root of a number in Go
- Log of a number in Go
- Remainder or Modulus in Go
- Break a number into integer and fraction parts in Go
- Power function in Go
- Check if a number is positive or negative in Go
- Min of two numbers in Go
- Max of two numbers in Go
- Generate random number in Go
- Generate random password
- Pick a random element in an array/slice in Go
- Pick a random character in string in Go
- Shuffle a string in Go
- Shuffle a slice or array in Go
- Generate a random array/slice of n integers in Go
- Generate a number in a given range
- Generate a random string in Go
- Immediately Invoked Function in Go
- Function Closures in Go
- Pass Function as an argument to another function
- Return a function from another function
- Pass Variable Number of Arguments to a function
- Difference between function and method
- Anonymous Function in Go
- Higher Order Function in Go
- User Defined Function Type
- Return Multiple Values from a function
- Function in Golang -- Complete Guide
- How to call a function from another package in Golang
- Defer keyword in Golang
- Defer a goroutine in Golang
- Use Case of defer function in Golang
- Inline Function in Defer in Golang
- Evaluation of defer arguments in Golang
- Custom Function in defer in Golang
- How does defer works in Golang
- Defer function and Named Return Values in Golang
- Multiple defer functions in Golang
- Defer and Methods in Golang
- Can defer be used inside main function in Golang
- Panic and Recover in Golang
- Recover a panic in a different function in Go
- Panic with Defer in Golang
- Runtime Error Panic in Golang
- Panic format string in Golang
- Recover panic from goroutine in Golang
- Return value of the function when panic is recovered in Golang
- Recover function return value in Golang
- Panic stack trace in Golang
- How to create panic in Golang
- Example of Recover Function in Golang
- What happens during panic in Golang
- Create panic by calling panic function in Golang
- Base64 encoding/Decoding in Golang
Object-Oriented Programming in GO
- Inheritance
- Polymorphism
- Abstract Classes
- Encapsulation
- Println vs Print vs Printf in Golang
- Understanding Errorf function in Golang
- Understanding Fprintf function in Golang
- Understanding Fprint function in Golang
- Understanding Fprintln function in Golang
- Understanding Println function in Golang
- Understanding Printf function in Golang
- Understanding Print function in Golang
- All Design Pattern in GO -- Curated List
- Creational
- Behavioral
- Structural
- Read
- Write
- Delete
- Update
- Rename
- Generic
- Check if a file is a directory in Go
- Create an empty file in Go
- Check if a file or directory exists in Go
- Iterate over a directory tree
- Get Current Working Directory in Go
- Touch a file in Go
- Move file from one location to another
- Get File Name, Size, Permission Bits, Mode, Modified Time in Go
- Copy a file in Go
- Validate the presence of the field in a struct in Golang
- Validate the range of the integer in a struct in Golang
- All about time and date in Go
- Represent date of birth in golang.
- Get age given a dob
- Current Timestamp in Go
- Date/Time fomatting in Go
- Time Conversion in Go
- Parse Time in Go
- Time Difference between two dates
- Get current time and date of different timezones
- Convert time between different timezones
- Understanding Duration in Go
- Add/Subtract to time
- Convert Unix Timestamp to time.Time
- Date in Golang
- Create new time instance
- Convert float to int in Golang
- Convert int to float in Golang
- Conversion between float32 and float64 in Golang
- Execute shell file from Go
- List All env variables in Go
- Set or Get or Unset env variables in Go
- Check if an env variable is set or not
- Detect OS at runtime in Go
- Get Hostname in Go
- Return Exit Status Code in Go
- Execute an OS/System Command in Go
- Get Current Username in Go
- Get Current User's Home Directory in Go
- Load a .env or environment file in Golang
- net/http package get Query Params in Go
- net/http Package -- Detecting Timeout
- Basic HTTP server in go
- Get headers from an incoming HTTP request in Golang
- Set response headers for an incoming HTTP request in Golang
- Get response headers for an outgoing HTTP request in Go (Golang)
- Set headers for an outgoing HTTP request in Golang
- Check if a particular header is present in an HTTP request in Golang
- Canonical HTTP Header Key Meaning
- Get JSON request body from a HTTP request in Golang
- Get client's user agent from an incoming HTTP request in Golang
- HTTP Client/Server with Basic Auth in Golang
- Parse application/x-www-form-urlencoded http request body in Golang
- HTTP client or Send x-www-form-urlencoded request body in Golang
- HTTP send/receive jpeg file request body example in Golang
- HTTP send/receive pdf file in request body example in Golang
- HTTP send/receive png file in request body example in Golang
- HTTP client/server multipart form-data request body example in Golang
- HTTP send/receive application octet-stream request body in Golang
- Why the response body is closed in golang
- Set a timeout while making an HTTP request in Golang
- Validate the range of the integer in an HTTP request body struct in Golang
- HTTP Client to not follow redirect in Golang
- Understanding Set-Cookie Response Header
- Cookie Jar in Golang
- Cookies in Golang
- Read cookie http in Golang
- Set cookie http in Golang
- Return 400 (Bad Request) in http response in Golang
- Return 404 (Resource Not Found) in http response in Golang
- Return 401 (UnAuthorized) in HTTP response in Golang
- Return 403 (Forbidden) in HTTP response in Golang
- Return 200 (StatusOK) in HTTP response in Golang
- Return 201 (StatusCreated) in HTTP response in Golang
- Return 500 or Internal Server Error in HTTP response in Golang
- How to set HTTP status code in response in Golang
- Return JSON body in HTTP response in Golang
- Return 202 (StatusAccepted) in HTTP response in Golang
- Return plain text body in HTTP response in Golang
- Return an image or file in HTTP response in Golang
- Parse a URL and extract all the parts in Golang
- Extract a URL from a string in Golang
- Convert Query Param String to Query Param Hash in Golang
- Get full hostname along with port from a URL in Golang
- Get or Extract Query Params from a URL in Golang
- Error in Golang
- Error in Golang- Advanced
- Different ways of creating an error in Golang
- Comparing error or error equality in Go
- Get underlying type from error or error assertion in Go
- Wrapping and Un-wrapping of error in Go
- Ignoring errors in Go
- All Data Structures in Golang
- Queue in Golang
- Stack in Golang
- Set in Golang
- Singly Linked List in Golang
- Doubly Linked List in Golang
- Binary Search Tree
- Heap in Golang
- Trie
- Reverse a number or an integer in Go (Golang)
- Implement your own Atoi function in Go (Golang)
- Check if a number is a palindrome or not in Go (Golang)
- Find the next permutation of a number in Go (Golang)
- Program to add all digits of a number in Go (Golang)
- Divide two integers without using multiplication or division operator in Go (Golang)
- Program to calculate the power of a number in Go (Golang)
- Plus one program or Add one to an integer array in Go (Golang)
- Longest substring without repeating characters program in Golang
- Longest Palindromic Substring within a string in Go (Golang)
- Generate valid parentheses in Go (Golang)
- Check valid parenthesis in Go (Golang)
- Longest valid parentheses substring within a string in Go (Golang)
- Wildcard matching or regex matching program in Go (Golang)
- Add two binary numbers program in Go (Golang)
- Check if two given strings are anagrams in Go (Golang)
- Sub string program in Go (Golang)
- Letter Combinations of a Phone Number Program in Go (Golang)
- Find two numbers in an array that adds up to a target number in Go (Golang)
- Medium of two sorted arrays in Go (Golang)
- Find all triplets in an array that adds to a zero in Go (Golang)
- Find all triplets in an array that adds to a target number in Go (Golang)
- Find the sum which is closest to a target number using three numbers in an array or 3Sum closest problem in Go (Golang)
- Find first missing positive integer in an int array in Go (Golang)
- Find the pivot index in a sorted and pivoted array in Go (Golang)
- Search in a sorted and pivoted array in Go (Golang)
- Find the first and last position of a target element in a sorted array in Go (Golang)
- Trapping rainwater problem in Go (Golang)
- Group anagrams together program in Go (Golang)
- Merge overlapping intervals in Go (Golang)
- Sort an array of 0, 1, and 2 in Go (Golang)
- Jump Game Program in Go (Golang)
- Remove duplicates from a sorted array in Go (Golang)
- Maximum sum subarray program in Go (Golang)
- Largest Rectangular Area in a Histogram in Go (Golang)
- Combination Sum Program in Go (Golang)
- Reverse Words in a sentence in Go (Golang)
- Program for Power set of a given array of integers in Go (Golang)
- Merge two sorted arrays in Go (Golang)
- Remove all occurrences of a given value in an array in place in Go (Golang)
- Unique Paths Program in Go (Golang)
- Best time to Buy-Sell Stocks Program in Go (Golang)
- Spiral Matrix Problem in Go (Golang)
- Rotate a symmetric matrix or an image in place in a clockwise direction in Go (Golang)
- Convert singly linked list into an array using Golang
- Convert singly linked list into a circular linked list using Golang
- Check if a linked list is circular in Golang
- Delete a kth node from the front in a Singly Linked List in Golang
- Delete a kth node from back in a Singly Linked List in Go (Golang)
- Reverse Doubly Linked List in Go
- Add two numbers represented by linked list in Golang
- Reverse a linked list in Go (Golang)
- Reverse nodes in k-group for a given linked list in Go (Golang)
- Pair swap nodes in a linked list in Go (Golang)
- Convert a sorted linked list to balanced BST in Go (Golang)
- Check if a given linked list has a cycle in Go (Golang)
- Rotate a linked list in Go (Golang)
- Detect cycle start node in a linked list in Go (Golang)
- Delete middle node of a linked list in Go (Golang)
- Partition a linked list in Go (Golang)
- Edit Distance between two strings in Go (Golang)
- Interleaving String Program in Go (Golang)
- Longest Increasing Subsequence Program in Go (Golang)
- Range Sum Array Program in Go (Golang)
- Range Sum 2d array program in Go (Golang)
- Count Possible Decodings of a digit sequence into letters in Go (Golang)
- Level Order Traversal of a binary tree in Go (Golang)
- Height or maximum depth of a binary tree in Go (Golang)
- Construct a binary tree from preorder and inorder in Go (Golang)
- Construct a binary tree from postorder and inorder in Go (Golang)
- Inorder traversal of a Binary Tree in Go (Golang)
- Postorder traversal of a Binary Tree in Go (Golang)
- Preorder traversal of a Binary Tree in Go (Golang)
- Check if a given tree is a Binary Search Tree in Go (Golang)
- Sorted Array to Height Balanced BST in Go (Golang)
- Validate an IP address in Go
- Check if an IP address is IPv4 or IPv6
- Get IP address from an incoming HTTP request
- Golang Regex -- Include dot -- '.' inside square brackets or character class
- Concatenation or AND of regexes in Golang
- Alternation (OR) of regexes in Golang
- Golang regex: Match full string
- Golang regex: Understanding caret and dollar character
- Golang Regex: Match prefix or suffix of a string
- Golang Regex: Case insensitive regular expression matching in Golang
- Golang Regex: Matching raw or literal string
- Golang Regex: Understanding dot '.' character
- Golang Regex: Replace all string which matches a Regular Expression
- Golang Regex: Backreferences
- Golang Regex: Optional Operator or question mark (?) in regular expression
- Golang Regex: Match number or numeric digits in Regular Expression
- Golang Regex: Match a floating-point number in Regular Expression
- Golang Regex: Understanding Curly Braces in Regular Expressions
- Golang regex match any character
- Golang Regex: Use a variable inside a Regular Expression
- Type, value and equality of interfaces
- Create, initialize and compare structs
- Slices/arrays explained: create, index, slice, iterate
- Maps explained: create, add, get, delete
- 5 basic for loop patterns
- 5 switch statement patterns
- Packages explained: declare, import, download, document
- Assignment to entry in nil map
- Invalid memory address or nil pointer dereference
- Multiple-value in single-value context
- Array won't change
- See all 27 gotchas
- Go beginner's guide: top 4 resources to get you started
- How to use JSON with Go [best practices]
- Regexp tutorial and cheat sheet
- Java to Go in-depth tutorial
- Go string handling overview [cheat sheet]
- Conversions [complete list]
- fmt.Printf formatting tutorial and cheat sheet
- Format a time or date [complete guide]
- Regexp tutorial and cheat sheet
- Bitwise operators [cheat sheet]
- Start a new Go project [standard layout]
- Learn to love your compiler
- Go blueprints: code for common tasks
- 2 basic FIFO queue implementations
- 2 basic set implementations
- A basic stack (LIFO) data structure
- Access environment variables
- Access private fields with reflection
- Bitmasks, bitsets and flags
- Check if a number is prime
- Command-line arguments and flags
- Go as a scripting language: lightweight, safe and fast
- Compute absolute value of an int/float
- Compute max of two ints/floats
- 3 simple ways to create an error
- Create a new image
- Format byte size as kilobytes, megabytes, gigabytes, ...
- Generate all permutations
- Hash checksums: MD5, SHA-1, SHA-256
- Hello world HTTP server example
- How to best implement an iterator
- 4 iota enum examples
- Maximum value of an int
- Round float to 2 decimal places
- Round float to integer value
- The 3 ways to sort in Go
- Table-driven unit tests
- Goroutines are lightweight threads
- Channels offer synchronized communication
- Select waits on a group of channels
- Data races explained
- How to detect data races
- How to debug deadlocks
- Waiting for goroutines
- Broadcast a signal on a channel
- How to kill a goroutine
- Timer and Ticker: events in the future
- Mutual exclusion lock (mutex)
- 3 rules for efficient parallel computation
- Object-oriented programming without inheritance
- Constructors deconstructed [best practice]
- Methods explained
- Public vs. private
- Pointer vs. value receiver
- Functional programming in Go [case study]
- Function types and values
- Anonymous functions and closures
- How to best implement an iterator
- Go as a scripting language: lightweight, safe and fast
- Read a file (stdin) line by line
- Command-line arguments and flags
- Access environment variables
StringsCheat sheet
- Go string handling overview [cheat sheet]
- fmt.Printf formatting tutorial and cheat sheet
- Regexp tutorial and cheat sheet
- Runes and character encoding
- Efficient string concatenation [full guide]
- Escapes and multiline strings
- 3 ways to split a string into a slice
- Convert between byte array/slice and string
- Convert between rune array/slice and string
- Convert between float and string
- Convert between int, int64 and string
- Convert interface to string
- Remove all duplicate whitespace
- 3 ways to trim whitespace (or other characters) from a string
- How to reverse a string by byte or rune
MapsStep-by-step
- Maps explained: create, add, get, delete
- 3 ways to find a key in a map
- Get slices of keys and values from a map
- Sort a map by key or value
Slices and arraysStep-by-step
- Slices/arrays explained: create, index, slice, iterate
- 3 ways to compare slices (arrays)
- How to best clear a slice: empty vs. nil
- 2 ways to delete an element from a slice
- Find element in slice/array with linear or binary search
- Last item in a slice/array
- Read a file (stdin) line by line
- Append text to a file
- Find current working directory
- List all files (recursively) in a directory
- Create a temporary file or directory
- Format a time or date [complete guide]
- Time zones
- How to get current timestamp
- Get year, month, day from time
- How to find the day of week
- Days between two dates
- Days in a month
- Measure execution time
- Generate random numbers, characters and slice elements
- Generate a random string (password)
- Generate a unique string (UUID, GUID)
- Shuffle a slice or array
- User-friendly access to crypto/rand
- Go beginner's guide: top 4 resources to get you started
- Packages explained: declare, import, download, document
- Package documentation
- Package initialization and program execution order
- 4 basic if-else statement patterns
- 5 switch statement patterns
- 5 basic for loop patterns
- 2 patterns for a do-while loop in Go
- 4 basic range loop (for-each) patterns
- Defer a function call (with return value)
- Type assertions and type switches
- Type alias explained
- Create, initialize and compare structs
- Pointers explained
- Untyped numeric constants with no limits
- Make slices, maps and channels
- How to append anything (element, slice or string) to a slice
- How to use the copy function
- [Default zero values for all Go types](https://yourbasic.org/golang/default-zero-value/ "Variables declared without an initial value are set to their zero values: 0 or 0.0 for numbers, false for booleans, "" for strings, and nil for interfaces, slices, channels, maps, pointers and functions.")
- Operators: complete list
- Conversions [complete list]
- Methods explained
- Type, value and equality of interfaces
- Named return values [best practice]
- Optional parameters, default parameter values and method overloading
- Variadic functions (...T)
- Error handling best practice
- 3 simple ways to create an error
- Panics, stack traces and how to recover [best practice]
- Blank identifier (underscore)
- Find the type of an object
- Generics (alternatives and workarounds)
- Pick the right one: int vs. int64
- 3 dots in 4 places
- Redeclaring variables
- How to use JSON with Go [best practices] encoding/json
- fmt.Printf formatting tutorial and cheat sheet fmt
- How to use the io.Reader interface io
- How to use the io.Writer interface io
- Create a new image image
- Write log to file (or /dev/null) log
- Hello world HTTP server example net/http
- Regexp tutorial and cheat sheet regexp
- The 3 ways to sort in Go sort