如何计算两个 Rust 数组/切片/向量的点积?

2023-11-24

我试图找到两个向量的点积:

fn main() {
    let a = vec![1, 2, 3, 4];
    let b = a.clone();
    let r = a.iter().zip(b.iter()).map(|x, y| Some(x, y) => x * y).sum();
    println!("{}", r);
}

这失败了

error: expected one of `)`, `,`, `.`, `?`, or an operator, found `=>`
 --> src/main.rs:4:58
  |
4 |     let r = a.iter().zip(b.iter()).map(|x, y| Some(x, y) => x * y).sum();
  |                                                          ^^ expected one of `)`, `,`, `.`, `?`, or an operator here

我也尝试过这些,但都失败了:

let r = a.iter().zip(b.iter()).map(|x, y| => x * y).sum();
let r = a.iter().zip(b.iter()).map(Some(x, y) => x * y).sum();

这样做的正确方法是什么?

(操场)


In map(),您不必处理迭代器返回一个的事实Option。这是由map()。您需要提供一个采用两个借用值的元组的函数。您的第二次尝试很接近,但语法错误。这是正确的:

a.iter().zip(b.iter()).map(|(x, y)| x * y).sum()

您的最终程序需要注释r:

fn main() {
    let a = vec![1, 2, 3, 4];
    let b = a.clone();

    let r: i32 = a.iter().zip(b.iter()).map(|(x, y)| x * y).sum();

    println!("{}", r);
}

(操场)

也可以看看:

  • 为什么 Rust 无法推断出 Iterator::sum 的结果类型?
  • 如何使用折叠对向量求和?

有关关闭的更多信息已传递至map: 我已经写了...map(|(x, y)| x * y),但对于更复杂的操作,您需要用以下命令来界定闭包主体{}:

.map(|(x, y)| {
    do_something();
    x * y
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何计算两个 Rust 数组/切片/向量的点积? 的相关文章

随机推荐

  • 使用 redux useDispatch 时 useEffect 缺少依赖项

    每当使用反应钩子安装我的组件时 我想获取我的类别useEffect而不是在每次重新渲染时 但我不断收到此警告React Hook useEffect has a missing dependency dispatch 这是我的代码 cons
  • Worksheet 类的 ShowAllData 方法失败

    我注意到当自动过滤器已打开时我的 VBA 脚本不起作用 知道这是为什么吗 wbk Activate Set Criteria Sheets Sheet1 Cells i 1 Set rng Sheets Sheet1 Range Cells
  • 如何在上传目录时删除 Chrome 中的警告消息

    使用上传目录时webkitdirectory在 Chrome 中 会出现一条丑陋的警告消息 该消息内容如下 将 数量 个文件上传到此站点 这将上传 目录名称 中的所有文件 仅当您信任该站点时才执行此操作 这是最近在 Chrome 版本 66
  • MSI 不在 C# 中运行

    我正在尝试运行一个MSI使用 Process Start 方法从 C 文件 MSI 文件很好 因为我可以正常运行它 但是当我尝试在某些 C 代码中运行 MSI 文件时 我收到以下错误 这个安装包无法 被打开 验证该包 存在 并且您可以访问它
  • java.lang.NumberFormatException用于将字符串转换为long [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 我正在尝试将字符串转换为长字符串 它会抛出NumberFormatException 我不认为这超出了范围long at all 这是要转换的代码 其中count strng
  • 在 PYSPARK 中运行收集时出错

    我正在尝试将网站名称与 URL 分开 例如 如果 URL 是 www google com 则输出应为 google 我尝试了下面的代码 除了最后一行 websites collect 之外 一切正常 我使用数据框来存储网站名称 然后将其转
  • Java 泛型问题:类型参数 E 不在其范围内

    我有一个关于泛型的问题 我有这个方法 根本无法编译 编译器告诉我 type parameter E is not within its bound 我通常在理解编译器错误方面没有问题 但这一个非常棘手 也许我对泛型的了解需要提高 谁能告诉我
  • Javascript将数据保存到文件系统(有用户提示)

    在最新的浏览器 支持 html5 中实现以下目标的最佳方法是什么 我主要针对的是 Google Chrome 在我的应用程序中 数据是通过 JavaScript 操作的 并且需要使用浏览器提示 另存为对话框 将输出写入文件系统 我不确定写入
  • JNI:从C代码到Java和JNI

    背景 我正在 Eclipse 中开发 Android 应用程序 现在遇到问题 需要您的帮助 所以我必须调用写成的函数C来自JAVA应用程序 但在我编写代码的方式上我有一些问题您可以在下面看到 我正在等待您的答案和想法 C Code typd
  • 如何在 C# 驱动程序中设置 MongoDB Change Stream 'OperationType'?

    当运行新的 MongDB 服务器版本 3 6 并尝试将更改流监视添加到集合以获取新插入和文档更新的通知时 我只收到更新通知 而不收到插入通知 这是我尝试添加手表的默认方式 IMongoDatabase mongoDatabase mongo
  • 通过 Javascript 检测图像的 mime 类型

    我正在使用 javascript document images 函数检测网页上的图像 该函数返回图像数组 由于我没有在正在加载的图像上使用任何扩展名 有什么方法可以从中获取图像的 mime 类型吗 除了在 jQuery 中再次请求图像并尝
  • 在 Visual Studio 2010 中调试时忽略跨 AppDomain 的异常

    我在调试调用另一个 AppDomain 的应用程序时遇到问题 因为如果其他 AppDomain 正在执行的任何操作中发生异常 则异常会冒泡并导致 Visual Studio 2010 无论如何都崩溃 我已经正确包装了抛出的方法调用try c
  • 在 Django TEMPLATE DIRS 中使用外部 URL

    Settings py 中的 Django TEMPLATE DIRS 调用 unix 样式斜杠 因此 当我打电话时 get template some template html 在视图中 结果始终从根开始 并导致调用 home user
  • 如何将您的 Unity 项目输入更新到 SteamVR 2.0?

    我有一些 Unity 场景与以前版本的 SteamVR 插件配合得很好 因为有新版本的插件 SteamVR Unity Plugin 2 0 我的代码不再有效 https steamcommunity com games 250820 an
  • 在 CSS 中使用 OS 9 资源分支字体和 @font-face

    我有一些旧的 OS 9 字体 其中包含资源分支中的字体数据 当我尝试在 font face 中链接此类字体并在浏览器中打开 HTML 时 文本仍然以默认字体显示 在搜索过程中 我发现可以使用 rsrc 属性将字体数据复制到常规 ttf 文件
  • OpenMP 中 private 子句中的变量与并行区域中定义的变量之间有什么区别吗?

    我想知道是否有任何理由选择private var OpenMP 中关于 私有 变量本地定义的子句 即 int var pragma omp parallel private var vs pragma omp parallel int va
  • 更改 Rails 中的当前选项卡

    我的应用程序顶部有一个选项卡列表 我将其包含在 application html erb 的常规布局中 它们看起来像这样 li class current li li li li li 当我点击该页面时 我想将所选选项卡更改为 当前 选项卡
  • 将数据从活动发送到另一个活动而不启动它

    如果我有两个活动 Activity1 和 Activity2 并且我想在不启动 Activity2 的情况下将数据从 Activity1 发送到 Activity2 我知道如果我想启动 Activity2 我在 Activity1 java
  • 如何为基于 YAML 的管道创建管道变量?

    使用设计器 类构建管道 您可以定义具有要传递到任务中的默认值的管道变量 如何对基于 YAML 的管道执行相同的操作 我想创建三个构建管道 每个管道都有一个设置为不同值的变量 所有三个都指向一个 YAML 文件 这文档 states 您可以选
  • 如何计算两个 Rust 数组/切片/向量的点积?

    我试图找到两个向量的点积 fn main let a vec 1 2 3 4 let b a clone let r a iter zip b iter map x y Some x y gt x y sum println r 这失败了