Zig(Zig语言)中类型的生成

10
在Zig中是否可以创建一个comptime函数,该函数将生成一个新的结构体类型?该函数将接收字符串数组和类型数组。 这些字符串是后续结构字段的名称。
2个回答

16

现在已经实现了,具体请参见https://github.com/ziglang/zig/pull/6099

const builtin = @import("std").builtin;
const A = @Type(.{
    .Struct = .{
        .layout = .Auto,
        .fields = &[_]builtin.TypeInfo.StructField{
            .{ .name = "one", .field_type = i32, .default_value = null, .is_comptime = false, .alignment = 0 },
        },
        .decls = &[_]builtin.TypeInfo.Declaration{},
        .is_tuple = false,
    },
});
test "" {
    const a: A = .{ .one = 25 };
}

TypeInfo结构体的定义在这里被给出。


3

谢谢。我猜想这是不可能的(否则文档会吹嘘它)。 - az5112

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接