Go
69 notes
Some notes are currently available only in Chinese. English translations are shown when available.
- 1.1 make vs newhistorical
What make and new are in Go, why memory allocation is needed, how they are used, their differences, and their implementation details.
- 1.2 reflectionhistorical
What reflection is, how Go implements reflection through interfaces, and the relationship between Type and Value.
- 1.3 errorhistorical
The distinction between exception and error in Go, how errors are used and handled, their implementation, and practical patterns.
- 1.4 interfacehistorical
Empty and non-empty interfaces, how interfaces are used, type conversion and assertions, iface/eface internals, nil comparison, and interface conversion.
- 1.5 functionhistorical
What functions are in Go, variadic parameters, multiple return values, named returns, closures, init functions, methods, stacks, and common functions.
- 1.6 stringhistorical
Character sets and Unicode, basic Go string usage, string/[]byte conversion, StringHeader, and string immutability.
- 1.7 maphistorical
What a map is, how hash buckets work, collision handling, expansion, and the historical Go map implementation.
- 1.8 unsafehistorical
Pointer types in Go, why pointers are needed, the unsafe pointer type, examples, and the underlying APIs.
- 1.9 panic and recoverhistorical
What panic and recover are, why they are needed, how to use them, and the runtime calls behind them.
- 1.10 Type Systemhistorical
Built-in and custom Go types, type metadata, _type, extra metadata for built-in types, and uncommontype metadata for custom types.