我可以轻松地解构元组的元组:
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(使用前将#替换为@)