相关疑难解决方法(0)

如何以编程方式获取结构的字段数?

我有一个自定义结构,如下所示:

struct MyStruct {
    first_field: i32,
    second_field: String,
    third_field: u16,
}
Run Code Online (Sandbox Code Playgroud)

是否有可能以编程方式获取结构字段的数量(例如,通过方法调用field_count()):

let my_struct = MyStruct::new(10, "second_field", 4);
let field_count = my_struct.field_count(); // Expecting to get 3
Run Code Online (Sandbox Code Playgroud)

对于这个结构:

struct MyStruct2 {
    first_field: i32,
}
Run Code Online (Sandbox Code Playgroud)

......以下电话应该返回1:

let my_struct_2 = MyStruct2::new(7);
let field_count = my_struct2.field_count(); // Expecting to get count 1
Run Code Online (Sandbox Code Playgroud)

有没有像这样的API field_count()或者只能通过宏获得它?

如果使用宏可以实现这一点,那么应该如何实现?

struct rust rust-macros rust-proc-macros

20
推荐指数
2
解决办法
1886
查看次数

标签 统计

rust ×1

rust-macros ×1

rust-proc-macros ×1

struct ×1