闭包参数中的元组成员提取

Vin*_*ier 6 tuples swift

考虑这个元组数组:

var tupleArray = [(String, Int)]()
tupleArray.append(("bonjour", 2))
tupleArray.append(("Allo", 1))
tupleArray.sort { (t1 , t2) -> Bool in
    let (_, n1) = t1
    let (_, n2) = t2
    return n1 < n2
}
Run Code Online (Sandbox Code Playgroud)

我想通过这样做来缩短闭包:

tupleArray.sort { ((_, n1) , (_, n2)) -> Bool in
    n1 < n2
}
Run Code Online (Sandbox Code Playgroud)

第一:有可能吗?
第二:如果可能的话语法是什么?

谢谢

Ben*_*aum 3

好吧,你可以使用短闭包语法:

tupleArray.sort { $0.1 < $1.1 }
Run Code Online (Sandbox Code Playgroud)

请参阅有关短闭包语法的官方指南,这.1只是元组索引访问。