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 '<'以及以下列表:
我应该在这里做什么?我只希望此数组得到排序。
您必须声明Element是Comparable:
extension Array where Element: Numeric & Comparable {
Run Code Online (Sandbox Code Playgroud)