如果你有:
(gdb) run
Program received signal SIGSEGV, Segmentation fault.
0x0000000000400aea in bar(int) ()
Missing separate debuginfos, use: debuginfo-install glibc-2.17-78.el7.x86_64 libgcc-4.8.3-9.el7.x86_64 libstdc++-4.8.3-9.el7.x86_64
(gdb) bt
#0 0x0000000000400aea in bar(int) ()
#1 0x0000000000400b95 in main ()
(gdb)
你可以这样做:
let array = [(1, 2)]
如果您有以下内容:
array.map({ first, second in ... })
如何解压缩?
let array = [((1, 2), (3, 4))]
这些都没有编译。
答案 0 :(得分:0)
这样可行,但不是很漂亮
let array = [((1, 2), (3, 4))]
array.map({ a, b in
return a.0 + a.1 + b.0 + b.1
})
这可能会好一些,但它仍然是嵌套的
let array = [((1, 2), (3, 4))]
array.map({ (a:(first:Int, second:Int), b:(first:Int, second:Int)) in
return a.first + a.second + b.first + b.second
})
您可以使用map将它们缩减为元组,然后分配值
array.map{($0.0,$0.1,$1.0,$1.1)}.map { (first:Int, second:Int, third:Int, forth:Int) in }