无法对数组进行排序:“对成员'<'的引用不明确”

Pet*_* W. 2 sorting operators swift

extension Array where Element: Numeric {
    func closest(to givenValue: Element) -> Element {
        let sorted = self.sorted(by: <)

        let over = sorted.first(where: { $0 >= givenValue })!
        let under = sorted.last(where: { $0 <= givenValue })!

        let diffOver = over - givenValue
        let diffUnder = givenValue - under

        return (diffOver < diffUnder) ? over : under
    }
}
Run Code Online (Sandbox Code Playgroud)

在此示例代码的第3行中,Xcode给出了我无法理解的错误消息Ambiguous reference to member '<'以及以下列表:

十几个“找到此候选人”条目的列表

我应该在这里做什么?我只希望此数组得到排序。

eml*_*lai 6

您必须声明ElementComparable

extension Array where Element: Numeric & Comparable {
Run Code Online (Sandbox Code Playgroud)