如何将整数向量连接成单个整数?

Ead*_*son 1 vector rust

我试图将向量的所有内容连接成一个数字。这就像[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)

Ort*_*kni 6

正如 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)