有没有办法在 Zig 中将数组或字节片初始化为零?

Is there a way to initialize an array or slice of bytes to zeroes in Zig?

提问人:fiatjaf 提问时间:10/8/2023 更新时间:10/8/2023 访问量:197

问:

显然,Zig 曾经以一种简单的方式提供此功能,但它在 6a5e61 中被删除了。

当需要这种行为时,现在推荐的方法是什么?手动遍历数组/切片并将所有字节设置为零?

数组 字节 切片 zig

评论


答:

2赞 sigod 10/8/2023 #1

使用 std.mem.zeroes。或者使用@memset

例如:

var a: [10]u8 = undefined;
@memset(&a, 0);
// or
// var a = std.mem.zeroes([10]u8);

std.log.info("{any}", .{ a });

这打印:

info: { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }