【发布时间】:2016-11-29 09:30:14
【问题描述】:
我正在尝试从我的 rust 结构中获取字段
fn check_args(command: i32, args: Vec<String>) -> Vec<Argument> {
let arg_tbl: [ArgsTable; 5] = [
ArgsTable { cc: 0, ac: 1, dv: "4".to_string() },
ArgsTable { cc: 1, ac: 1, dv: "4".to_string() },
ArgsTable { cc: 1, ac: 2, dv: "in.txt".to_string() },
ArgsTable { cc: 4, ac: 3, dv: "1".to_string() },
ArgsTable { cc: 6, ac: 2, dv: "out.txt".to_string() },
];
let mut arguments: Vec<Argument> = Vec::new();
if args.len() == 0 {
for arg in arg_tbl.iter() {
if arg.cc == command {
arguments.push(Argument {
code: arg.ac,
value: arg.dv,
});
}
}
}
}
但得到这个错误
|
151 | value: arg.dv
| ^^^ cannot move out of borrowed content
如何获取arg.dv 字段?
【问题讨论】:
-
请发MCVE。
-
您复制/粘贴有问题吗?特别是这一行中的
i似乎是错误的:for i in arg_tbl.iter()。 -
该死!我很愚蠢))thanx @wimh。应将其更改为
arg。但我也像这样克隆了arg.dv:arg.dv.clone(),现在它可以工作了 -
你看过所有其他cannot move out of borrowed content 问题吗?