2
出于解释性编程语言的习惯,我想根据它们的关键字重写许多值。我认为我会将所有信息存储在为此项目准备的结构中。于是我开始迭代:如何通过字符串名称设置结构体字段值?
struct Container {
x: String,
y: String,
z: String
}
impl Container {
// (...)
fn load_data(&self, data: &HashMap<String, String>) {
let valid_keys = vec_of_strings![ // It's simple vector with Strings
"x", "y", "z"
] ;
for key_name in &valid_keys {
if data.contains_key(key_name) {
self[key_name] = Some(data.get(key_name);
// It's invalid of course but
// I do not know how to write it correctly.
// For example, in PHP I would write it like this:
// $this[$key_name] = $data[$key_name];
}
}
}
// (...)
}
也许宏?我试图使用它们。 key_name
总是被解释为是,我无法获得key_name
的价值。
如何在不重复每个值的代码的情况下做到这一点?
我很困惑,如果它们不是您要使用的键,那么'x','y'和'z'是什么?你是否试图根据地图内容向结构添加额外的字段? – loganfsmyth
@loganfsmyth对不起,我忘了更换矢量内的名字。现在看起来应该如此。 – Maxie