遍历Vec的元素时使用powi

时间:2018-10-05 20:43:23

标签: rust

此代码正确运行,并给出结果为14

fn main() {
    let v: i32 = vec![1, 2, 3].iter().map(|x| x * x).sum();
    println!("{}", v);
}

playground

我正在尝试将x * x替换为powi(2),所以我尝试了以下两个选项,但它们都不起作用:

let v1: i32 = vec![1, 2, 3].iter().map(|x| x.powi(2)).sum();
let v2: i32 = vec![1, 2, 3].iter().map(|&x| &x.powi(2)).sum();

我也有posted this to the Rust user's forum

1 个答案:

答案 0 :(得分:0)

在标准库中,powi仅针对两种内置浮点类型实现:

如果您希望对整数类型施加幂,则要使用固有方法pow(例如i32::pow):

let v: i32 = vec![1i32, 2, 3].iter().map(|x| x.pow(2)).sum();