零位类型 (Zero Bit Types)

零位类型是指在内存中不占用任何空间的类型。它们主要用于类型系统和编译时断言。

常见的零位类型

  • void: 唯一的 void{} 值。
  • error{}: 空错误集。
  • enum {}: 空枚举。
  • struct {}: 空结构体。
  • union {}: 空联合体。

示例

const std = @import("std");

test "zero bit types" {
    const v: void = {}; // void 类型
    _ = v;

    const empty_error_set = error{};
    const e: empty_error_set = error.Something; // 错误:empty_error_set 不包含 Something

    const EmptyEnum = enum {};
    // var ee: EmptyEnum = .value; // 编译错误:EmptyEnum 没有值

    const EmptyStruct = struct {};
    const es: EmptyStruct = {};

    const EmptyUnion = union {};
    const eu: EmptyUnion = {};
}

用途

零位类型通常用于:

  • 表示一个不存在的值(如 void)。
  • 在编译时强制执行某些类型约束。
  • 在泛型代码中作为占位符,如果某个参数不需要实际值。

另请参阅: