将两个不同数组中的元素相乘

时间:2019-07-08 07:39:21

标签: arrays rust

我正在尝试将两个不同数组中的每个元素相乘。我的意思是,我有array1 = [i1 , i2]array2 = [j1, j2],所以我需要做(i1 * j1) + (i2 * j2)。如何在Rust中解决这个问题?我一直在研究《书》,发现了一些可能有帮助的方法:mapfold。但是我有点迷茫。预先感谢!

fn sum_product(a: [f32], b: [f32]) -> [f32] {
    unimplemented!();
}

fn main() {
    let a: [f32; 2] = [2.0, 3.0];
    let b: [f32; 2] = [0.0, 1.0];
}

1 个答案:

答案 0 :(得分:2)

混合使用zipmap

fn sum_product(a: &[f32], b: &[f32]) -> f32 {
    a.iter()
        .zip(b.iter())
        .map(|(a, b)| a * b)
        .sum()
}

fn main() {
    let a = [2.0, 3.0];
    let b = [0.0, 1.0];

    assert_eq!(3.0, sum_product(&a, &b));
}