我试图将向量的所有内容连接成一个数字。这就像[1, 2, 4] -> 124。这是我现在所拥有的:
fn sumVector(vec: &Vec<u32>) -> u32 {
return vec.to_owned().concat();
}
Run Code Online (Sandbox Code Playgroud)
这是因错误而失败
fn sumVector(vec: &Vec<u32>) -> u32 {
return vec.to_owned().concat();
}
Run Code Online (Sandbox Code Playgroud)
正如 Stargateur 的评论中所说,你可以这样做:
fn concat(vec: &[u32]) -> u32 {
vec.iter().fold(0, |acc, elem| acc * 10 + elem)
}
Run Code Online (Sandbox Code Playgroud)
您还可以以命令式风格编写相同的函数:
fn concat(vec: &[u32]) -> u32 {
let mut acc = 0;
for elem in vec {
acc *= 10;
acc += elem;
}
acc
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4019 次 |
| 最近记录: |