匹配元组作为映射的输入

2024-04-11

尝试对映射中的元组进行模式匹配:

fn main() {
    let z = vec![(1, 2), (3, 4)];
    let sums = z.iter().map(|(a, b)| a + b);
    println!("{:?}", sums);
}

产生错误

error[E0308]: mismatched types
 --> src/main.rs:3:30
  |
3 |     let sums = z.iter().map(|(a, b)| a + b);
  |                              ^^^^^^ expected reference, found tuple
  |
  = note: expected type `&({integer}, {integer})`
             found type `(_, _)`

可以以某种不同的形式使用此语法,或者我必须编写:

fn main() {
    let z = vec![(1, 2), (3, 4)];
    let sums = z.iter()
        .map(|pair| {
            let (a, b) = *pair;
            a + b
        })
        .collect::<Vec<_>>();
    println!("{:?}", sums);
}

关键在错误信息中:

  |
3 |     let sums = z.iter().map(|(a, b)| a + b);
  |                              ^^^^^^ expected reference, found tuple
  |

它告诉你的是map通过引用接受其参数,因此您需要在模式中引用:

fn main() {
    let z = vec![(1, 2), (3, 4)];
    let sums = z.iter().map(|&(a, b)| a + b);
    //                       ^
    println!("{:?}", sums);
}

就是这样。

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

匹配元组作为映射的输入 的相关文章

随机推荐

  • 在 SQL 中仅选择列中重复值的第一行

    我有一个表 其中有一列可能在突发中具有相同的值 像这样 id Col1 1 6050000 2 6050000 3 6050000 4 6060000 5 6060000 6 6060000 7 6060000 8 6060000 9
  • 为什么 C# 中线程安全事件调用的这种“常见”习惯用法完全有效? [复制]

    这个问题在这里已经有答案了 我正在阅读有效的 C 我遇到了以下模式来改进事件调用行为并使其线程安全 public class EventSource private EventHandler
  • Oauth2有没有Php客户端? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 是否有适用于 PHP 的 OAuth 用户库 理想情况下可用于 Google 的 API Google 使用 OAuth2 提供了自己的
  • Java:对文本文件行进行排序

    我正在使用 eclipse 并且尝试对大约 40 行的文本文件进行排序 如下所示 1 Terminator 1984 Schwarzenegger 2 Avatar 2009 Worthington 3 Avengers 2012 Down
  • 使用或不使用协议验证 URL

    您好 我想验证以下网址 因此只要存在 TLD 如 com net org 等 无论是否包含 http www 部分 它们都会通过 有效的 URL 应该是 http www domain com http domain com https w
  • ANDROID:将屏幕分成 2 个相等的部分,并有 2 个列表视图

    我正在尝试将 2 个列表视图放入我的布局中 问题是我事先不知道每个列表视图的大小 第一个列表视图可以有几个项目 0 1 2 最多大约 10 个 第二个列表视图可以有许多项目 最多 100 个 我尝试将两个列表视图的权重设置为 1 但它不起作
  • 将超类中的 @Sql 与子类中的 @Sql 合并

    我有一个带有注释的抽象类 Sql executionPhase ExecutionPhase BEFORE TEST METHOD scripts someScript 我有一个继承自抽象类的测试类 子类也注释为 Sql execution
  • Cron python脚本不执行[重复]

    这个问题在这里已经有答案了 我读过一些关于此的文章 但我无法在其中找到帮助 我有一个使用 smtplib 发送邮件的 python 脚本 从命令行调用时它会起作用 I have usr bin python作为第一行 并且可以使用以下命令运
  • 市政数据集? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在寻找一些数据来创建查找表 具体来说 美国每个州的所有县以及每个县的所有城市 我在哪里可以找到这样的市政数据集 编辑 我正在查看 census g
  • 为什么 subprocess.Popen 不起作用

    我尝试了很多事情 但由于某种原因我无法让事情发挥作用 我正在尝试使用 Python 脚本运行 MS VS 的 dumpbin 实用程序 这是我尝试过的 以及对我不起作用的 1 tempFile open C Windows temp tem
  • difflib.SequenceMatcher isjunk 参数未考虑?

    在 python difflib 库中 SequenceMatcher 类的行为是否异常 或者我是否误读了假定的行为 为什么 isjunk 论点在这种情况下似乎没有任何区别 difflib SequenceMatcher None AA A
  • 错误“无法推断 (a ~ b)”是什么意思?

    我正在修改以下代码作为作业的一部分 rand Random a gt State StdGen a rand do gen lt get let x gen random gen put gen return x 我被要求写一个函数rand
  • onReceive 方法没有被调用

    public class BroadcastTest extends Activity BroadcastReceiver receiver Called when the activity is first created Overrid
  • React Router 3,与查询参数完全匹配

    在 React Router 3 中 如何精确匹配包含查询参数的路由 像这样的事情
  • 无法推送到 Codeplex 上的 Hg 项目

    我正在尝试对使用 Mercurial 的 Codeplex 项目进行更改 我收到以下错误 中止 HTTP 错误 500 找到放弃的事务 运行 hg recovery 我在我的家用电脑上尝试过 但遇到了同样的错误 我运行 hg recover
  • Django站点地图索引分页URL格式

    我创建了一个站点地图索引 https docs djangoproject com en dev ref contrib sitemaps creating a sitemap index对于我的 Django 站点 因为我有超过 50k
  • 病毒或机器故障导致“无法创建Java虚拟机”?

    我用的是双核XP机安装了 4GB 内存 但仅2 5GB由于 32 位事实 由操作系统报告 我正在积极修改旧的 JAVA 应用程序至少一个月 使用最新的Eclipse 编辑 构建和运行 和Ant 另一种构建和运行的方式 在里面Eclipse运
  • 当用户切换选项卡时暂停 html5 视频

    我的网页上嵌入了一个 HTML5 视频
  • VBA在指定范围内查找指定单元格值并选择它

    我在创建一个宏时遇到问题 该宏将在 信息 工作表的范围内找到活动工作表中的指定值 如果在范围内找不到单元格值 那么它会给我一个消息框 指出 未找到值 我有以下内容 但它不起作用 Sub testrot Dim i As String Dim
  • 匹配元组作为映射的输入

    尝试对映射中的元组进行模式匹配 fn main let z vec 1 2 3 4 let sums z iter map a b a b println sums 产生错误 error E0308 mismatched types gt