通过给定字符串访问struct字段
假设我们有一个字段使用的通过给定字符串访问struct字段,struct,rust,Struct,Rust,假设我们有一个字段使用的Personstruct和PersonNamestruct,如下所示: struct-Person{ 姓名:人名, 年龄:u8, } 结构人名{ 名称:String, 中间名称:选项, 姓氏:选项, } 创建结构: let foo=Person{name:PersonName{name:String::from(“bar”),中间名:None,姓氏:String::from(“baz”)},年龄:16u8}; 如何使用此字符串访问其中指定的struct字段 让foo_
Person
struct和PersonName
struct,如下所示:
struct-Person{
姓名:人名,
年龄:u8,
}
结构人名{
名称:String,
中间名称:选项,
姓氏:选项,
}
创建结构:
let foo=Person{name:PersonName{name:String::from(“bar”),中间名:None,姓氏:String::from(“baz”)},年龄:16u8};
如何使用此字符串访问其中指定的struct字段
让foo_姓氏=eval(“name.name”)//返回“baz”
//结构计算器返回特定字段的值
//即:字段路径:“我的结构字段。子字段1。子字段1”
fn eval(字段路径:字符串)->…{}
如果不编写自定义评估器,有没有办法做到这一点?没有办法做到这一点。
Rust是一种静态编译语言,在程序运行时这种信息不再存在。您可以通过创建自己的trait并为此trait创建自己的派生宏来实现这一点。但在这里描述起来非常复杂。