`Результат оператора '<' не используется`, когда в действительности он используется - PullRequest
0 голосов
/ 26 апреля 2019

Мне интересно, это ошибка в 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 unused и Result 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 Ответ

2 голосов
/ 26 апреля 2019

Вам нужно return значение bool

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

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