Zig 的 (.{}){} 语法
本文解释了 Zig 语言中令人困惑的 (.{}){} 语法。它由泛型、匿名结构体字面量和默认字段值三个特性组合而成。泛型允许在编译时创建类型,例如 `Node(i32)`。匿名结构体字面量允许使用 .{} 语法创建结构体实例,例如 `.{.port = 8000}`。默认字段值允许在定义结构体时设置默认值,简化实例化。`std.heap.GeneralPurposeAllocator(.{}){}` 实际上是使用默认配置创建了一个 GeneralPurposeAllocator 实例,相当于 `std.heap.GeneralPurposeAllocator(std.heap.GeneralPurposeAllocatorConfig{}){}`,其中内外两层括号分别对应泛型参数和结构体实例化。
阅读更多