Rust 按变量访问结构字段
我希望迭代结构的字段,并在每次迭代中访问其各自的值:Rust 按变量访问结构字段,rust,Rust,我希望迭代结构的字段,并在每次迭代中访问其各自的值: #[derive(Default, Debug)] struct A { foo: String, bar: String, baz: String } fn main() { let fields = vec!["foo", "bar", "baz"]; let a: A = Default::default(); for field in fields { let va
#[derive(Default, Debug)]
struct A {
foo: String,
bar: String,
baz: String
}
fn main() {
let fields = vec!["foo", "bar", "baz"];
let a: A = Default::default();
for field in fields {
let value = a[field] // this doesn't work
}
}
如何通过变量访问字段
更新
我宁愿使用HashMap:
fn main() {
let mut B = HashMap::new();
B.insert("foo", 1);
B.insert("bar", 2);
B.insert("baz", 3);
let fields = vec!["foo", "bar", "baz"];
for &field in &fields {
let value = B.get(field);
}
}
Rust没有任何直接在其字段上迭代的方法。如果数据在语义上表示某种类型的集合,则应改为使用集合类型,例如
Vec
、数组或中的某个集合
如果您仍然觉得需要遍历这些字段,那么您可能需要重新考虑您的任务方法,看看是否有更惯用/正确的方法来完成它这似乎是一个好方法。或者使用一些集合结构,或者更好,也许您可以解释为什么需要这样做this@sshashank124你的回答很有帮助。如果你发布了一个答案,你会得到一张赞成票