1. 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.

  2. 1.2 reflectionhistorical

    What reflection is, how Go implements reflection through interfaces, and the relationship between Type and Value.

  3. 1.3 errorhistorical

    The distinction between exception and error in Go, how errors are used and handled, their implementation, and practical patterns.

  4. 1.4 interfacehistorical

    Empty and non-empty interfaces, how interfaces are used, type conversion and assertions, iface/eface internals, nil comparison, and interface conversion.

  5. 1.5 functionhistorical

    What functions are in Go, variadic parameters, multiple return values, named returns, closures, init functions, methods, stacks, and common functions.

  6. 1.6 stringhistorical

    Character sets and Unicode, basic Go string usage, string/[]byte conversion, StringHeader, and string immutability.

  7. 1.7 maphistorical

    What a map is, how hash buckets work, collision handling, expansion, and the historical Go map implementation.

  8. 1.8 unsafehistorical

    Pointer types in Go, why pointers are needed, the unsafe pointer type, examples, and the underlying APIs.

  9. 1.9 panic and recoverhistorical

    What panic and recover are, why they are needed, how to use them, and the runtime calls behind them.

  10. 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.