【问题标题】:Tuple member extraction in closure arguments闭包参数中的元组成员提取
【发布时间】:2026-02-11 23:20:03
【问题描述】:

考虑这个元组数组:

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
}

我想通过做这样的事情来缩短闭包时间:

tupleArray.sort { ((_, n1) , (_, n2)) -> Bool in
    n1 < n2
}

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

谢谢

【问题讨论】:

    标签: swift tuples


    【解决方案1】:

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

    tupleArray.sort { $0.1 < $1.1 }
    

    请参阅the official guide 了解短闭包语法,.1 只是元组索引访问。

    【讨论】:

    • 谢谢,我知道这一点,但有没有办法直接将 $0.1 添加到它自己的变量中? (在闭包的参数列表中)