实际上使用了运算符'<'的结果是未使用的

时间:2019-04-26 10:55:21

标签: swift swift4.2

我想知道这是XCode中的错误还是我做错了什么:

我有一个实现Comparable的类:

class Span: Comparable {
    var start: Int
    var end: Int

    // Some stuff skipped 

    static func < (lhs: Span, rhs: Span) -> Bool {
        lhs.start < rhs.start
    }

    static func == (lhs: Span, rhs: Span) -> Bool {
        lhs.start == rhs.start
    }
}

XCode抱怨func <func ==声明都为

Result of operator '<' is unusedResult of operator '==' is unused

在我的代码中,确实从未明确调用它们,但它们被用作

var spans: [Span] = []
spans.append(Span(....))
...
spans.append(Span(....))
spans.sort() // sort() calls operator '<' for a Comparable type Span

我做错了什么还是XCode中的错误?

已编辑:不缺少return。它是隐式的。代码编译就很好。这是我要问的警告。没有关于“遗失回报”的更多答案。谢谢。

1 个答案:

答案 0 :(得分:2)

您需要return布尔值

static func < (lhs: Span, rhs: Span) -> Bool {
    return lhs.start < rhs.start
}

static func == (lhs: Span, rhs: Span) -> Bool {
    return lhs.start == rhs.start
}