Вот простой класс Swift с 3 полями:
public class Cabbage: Comparable {
public let someString: String
public let someInt: Int
public let someDouble: Double
public init(_ someString: String, _ someInt: Int, _ someDouble: Double) {
self.someString = someString
self.someInt = someInt
self.someDouble = someDouble
}
public static func ==(lhs: Cabbage, rhs: Cabbage) -> Bool {
if lhs.someString == rhs.someString {
if lhs.someInt == rhs.someInt {
if lhs.someDouble == rhs.someDouble {
return true
}
}
}
return false
}
public static func <(lhs: Cabbage, rhs: Cabbage) -> Bool {
if lhs.someString < rhs.someString {
if lhs.someInt < rhs.someInt {
if lhs.someDouble < rhs.someDouble {
return true
}
}
}
return false
}
}
Я думаю, что моя первая функция func == () верна. Мы возвращаем true тогда и только тогда, когда все поля равны.
Но я не думаю, что моя логика верна для func <(). </p>
Например, если lhs.someString == rhs.someString, должен ли я сравнивать lhs.someInt и rhs.someInt?
И если эти два равны, я должен также сравнивать lhs.someDouble и rhs.someDouble?
Любые идеи или рекомендации будут высоко оценены.