在 Zig 函数中使用和初始化可变参数的正确方法是什么?
fn variadicFunc(val: u8, variadicArg: ...u8) {
for (variadicArg) |arg| {
// ... work on the arg
_ = arg;
}
}
最佳答案
回答我自己的问题,感谢 Zig Discord 的 Aiz 和 Hanna:
在 Zig 中编写 variadicFunction 的最基本方法是使用 anytype
和匿名结构:
fn variadicFunc(variadicArg: anytype) {
for (std.meta.fields(@TypeOf(items)) |field| {
const value = @field(items, field.name);
// work with the value
}
}
variadicFunc(.{"Hello", 12, .{ Hello } });
但是要小心。这将造成二进制膨胀。尽可能使用数组或切片。
关于variadic-functions - 如何在 Zig 中初始化可变参数函数参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72122366/