【发布时间】:2019-07-08 07:39:21
【问题描述】:
我正在尝试将两个不同数组中的每个元素相乘。我的意思是,我有array1 = [i1 , i2] 和array2 = [j1, j2] 所以我需要做(i1 * j1) + (i2 * j2)。我如何在 Rust 中解决这个问题?我一直在研究 The Book 并看到了一些可能有帮助的方法:map 和 fold。但我有点失落。提前致谢!
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];
}
【问题讨论】:
-
请注意,法语 Boiethios 的答案使用 slices 作为
sum_product的参数 - 您不能简单地将[f32]指定为类型,因为所有数组类型也必须带有大小(如 @ 987654332@ 确实如此)。然而,切片是集合的视图(无论是数组、vec 等),并且不需要明确的大小。 -
此外,除非您绝对需要,否则请避免在变量上指定显式类型,例如
a和b。编译器可以并且将为您解决它们,这样可以节省大量输入:)