在闭包中解构元组的元组

2024-01-09

我可以轻松地解构元组的元组:

let tt = (2, (3, 4))

let (a, (b, c)) = tt
b // => 3

我想在声明闭包时做同样的事情,例如我想我可以写:

[tt].map { (a, (b, c)) in
    // Use b
}

Xcode 抱怨“未命名参数必须使用空名称编写”。

我让它“工作”的唯一方法是:

[tt].map { (a, tuple: (b: Int, c: Int)) in
    // Use tuple.b
}

这有两个我想避免的缺点:

  • 我需要使用tuple.b代替b
  • 我需要指定的类型b and c

顺便说一句,我的用例是我想做一个reduce与索引所以我正在尝试使用array.enumerate().reduce


通过额外的赋值行,您可以将数组中的值分配给(a, (b, c))解构元组:

let tt1 = (2, (3, 4))
let tt2 = (5, (6, 7))

[tt1, tt2].map { tt in
    let (a, (b, c)) = tt
    print(b)
}

Output:

3
6

或者:

[tt1, tt2].map {
    let (a, (b, c)) = $0
    print(b)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在闭包中解构元组的元组 的相关文章

随机推荐

  • 如何在 Power Shell 中正确增加不同月份期间的日期('yyyy-mm-dd')

    让我问一下如何在 PowerShell 中正确增加日期 我们希望获取指定时间段内格式为 yyyy mm dd 的日期列表 将它们传递给其他程序 例如 当 DateStart 2018 01 05 且 DateEnd 2018 01 08 时
  • 段落中文本上方的位置跨度

    我尝试在文本上方放置一些文本 如下所示 在音乐中使用 Am E This is a new sentence G C This is another sentence 但我不想使用空格 目前我有这个 p position relative
  • ASP.NET Core 2 razor 页面中的文件上传

    我正在尝试在 asp net core 2 razor 页面中进行简单的文件上传 我有下面的代码 请认识到它是不完整的 当我在 VS2017 中运行时 我检查我的 FileUpload 对象 不幸的是它为空 我希望它不是 null 之外的东
  • 向量中元素的默认构造

    在阅读此问题的答案时question https stackoverflow com questions 877385 dynamically allocating and setting to zero an array of float
  • 单元测试文件 I/O 方法

    我对单元测试还比较陌生 我用 Ruby 编写了一个类 它接受一个文件 在该文件中搜索给定的正则表达式模式 替换它 然后将更改保存回文件 我希望能够为此方法编写单元测试 但我不知道如何去做 有人可以告诉我如何对处理文件 I O 的方法进行单元
  • THREE.js 几何图不出现

    接下来我在自定义几何体上加载图像映射 它代表上图中的棕色几何形状 var aqua ground geo new THREE Geometry var top0 new THREE Vector3 aqua ground geo x NEG
  • 如何在 jQuery 中使用循环自动绑定多个事件处理程序

    我正在开发一个模拟棋盘的简单应用程序 因此我有一张有 64 个方格的桌子 我想通过编写一个循环的函数来绑定每个方块的事件处理程序 而不是写出 64 次 编辑 请注意 我希望处理程序返回一个数值来指示单击了哪个 div 我不需要处理程序来返回
  • PushViewController 两次当我双击太快时

    当我调用将 ViewController 推送到详细聊天控制器 一对一聊天 时 我有以下代码 但是 如果我单击得太快 视图控制器将被推送两次 动画我看了两遍 谁能指出我错误在哪里 该代码来自 LBTA 的 Youtube 课程 Fireba
  • x86-64 上的 C++:何时在寄存器中传递和返回结构/类?

    假设 Linux 上的 x86 64 ABI 在 C 中的什么条件下 结构会传递给寄存器中的函数 还是传递给堆栈上的函数 在什么条件下它们会返回到寄存器中 答案会随着课程的变化而变化吗 如果有助于简化答案 您可以假设单个参数 返回值并且没有
  • 是否可以仅对facet_wrap 的各个方面进行重新排序,而不对基础因子级别进行重新排序?

    示例数据框 df lt data frame x rep 1 10 4 y rnorm 40 Case rep c B L BC R each 10 我可以使用以下方法在其自己的方面绘制每个时间序列 ggplot df aes x x y
  • 在清单中找不到以下权限:2 [flutter]

    我正在使用permission handler来获取位置许可 它总是说 在清单中找不到权限 即使我尝试过 flutter clean import package permission handler permission handler
  • 找不到文件错误 python [重复]

    这个问题在这里已经有答案了 import os import time torrent folder os listdir r C users chris desktop torrents for files in torrent fold
  • 任务异常长时间处于 WaitingToRun 状态

    我有一个程序可以处理并行运行的各种任务 单个任务充当各种管理器 确保在运行下一个任务之前满足某些条件 但是 我发现有时任务会处于 WaitingToRun 状态很长时间 下面是代码 mIsDisposed false mTasks new
  • 是否有一个完整的示例来将 sympy 中的数学表达式写入 Microsoft Word 文档?

    这可能是一个愚蠢的问题 但我很绝望 我是一名数学老师 我尝试生成数学测试 我为此尝试了 Python 并完成了一些工作 然而 我不是一个专业的程序员 所以我对 MathMl prettyprint 之类的东西迷失了方向 有谁可以为我提供一个
  • Python 中“in”的结合性?

    我正在制作一个Python解析器 这是really让我困惑 gt gt gt 1 in in a False gt gt gt 1 in in a TypeError in
  • 使用 except 处理 express-jwt 中的参数化路由

    给定以下路线 router get api members confirm id function req res next 如何指定要排除的路由 我努力了 app use api expressJwt secret config secr
  • Knockout.js 语法

    我是 Javascript MVC 框架 Knockout js 的初学者 来自传统的 Javascript 以及一些 jQuery 经验 我在理解学习 Knockout js 的语法时遇到困难 考虑以下陈述 风景 ul class fol
  • 如何使用bat脚本将命令表达式的结果存储在变量中?

    我有下面的命令来计算遵循该模式的所有目录20 dir b 20 find c 2 例如 如果我有以下目录 该命令将返回 6 20090901 20090902 20090903 20090904 20090905 20090906 如何将该
  • html2canvas 不显示子 div 中的图像

    我正在尝试使用 html2canvas 从 div 创建图像 Brief 我有一个图像 png 其中有一个透明区域 我有另一个图像 可以是 jpg 或 png 将被拖动 调整大小 使用a在上图的透明区域内看起来不错 辅助分区 我有一个辅助
  • 在闭包中解构元组的元组

    我可以轻松地解构元组的元组 let tt 2 3 4 let a b c tt b gt 3 我想在声明闭包时做同样的事情 例如我想我可以写 tt map a b c in Use b Xcode 抱怨 未命名参数必须使用空名称编写 我让它