加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – 关闭元组的元组元组

发布时间:2020-12-14 04:59:18 所属栏目:百科 来源:网络整理
导读:我可以轻松地构建一个元组元组: let tt = (2,(3,4))let (a,(b,c)) = ttb // = 3 在声明闭包时我想做同样的事情,例如我以为我可以写: [tt].map { (a,c)) in // Use b} XCode抱怨“未命名的参数必须用空名称写”. 我得到“工作”的唯一方法是: [tt].map { (
我可以轻松地构建一个元组元组:

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

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

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

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

XCode抱怨“未命名的参数必须用空名称写”.

我得到“工作”的唯一方法是:

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

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

>我需要使用tuple.b而不是b
>我需要指定b和c的类型

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

解决方法

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

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

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

输出:

06001

或者:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读