零位类型 (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)。 - 在编译时强制执行某些类型约束。
- 在泛型代码中作为占位符,如果某个参数不需要实际值。