let tt = (2,(3,4))let (a,(b,c)) = ttb // => 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)) = print(b)}总结
以上是内存溢出为你收集整理的swift – 关闭元组的元组元组全部内容,希望文章能够帮你解决swift – 关闭元组的元组元组所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)