未定义 (undefined)

在 Zig 中,undefined 是一个可以强制转换为任何类型的值。它表示该值未被指定。

var x: i32 = undefined;
x = 1;

当你不关心变量的初始值,或者你确定会在使用该变量之前对其进行初始化时,这非常有用。

在调试模式(Debug mode)下,Zig 会用 0xaa 字节填充 undefined 内存。这有助于在调试器中检测未初始化的内存使用情况。然而,依赖这种行为是错误的。

在发布安全模式(ReleaseSafe mode)和发布小模式(ReleaseSmall mode)以及发布快模式(ReleaseFast mode)下,为了性能,未定义的内存内容实际上是未定义的(即包含垃圾数据)。

另请参阅: