Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика XCode

Разработчик

Справочное руководство по библиотеке стандарта Swift

PDF

Сопоставимый

Comparable протокол позволяет сравнить два значения того же типа с помощью <, >, <=, и >= операторы отношения.

Библиотека стандарта Swift обеспечивает реализацию для >, <=, >=, и != операторы. В результате типы, соответствующие Comparable протокол требуется, чтобы реализовывать < и == операторы только. ( == оператор является требованием потому что Comparable наследовался от Equatable протокол.)

Сравнение значений

<

Определяет, является ли одно значение меньше, чем другое значение того же типа.

Объявление

  • func <(lhs: Self, rhs: Self) -> Bool

Обсуждение

Для приспосабливания протоколу необходимо обеспечить реализацию для < в глобальной области видимости. Необходимо возвратиться true если lhs значение является меньше, чем rhs значение, иначе false.

Вам решать для определения то, что «меньше, чем” означает для двух значений соответствующего типа:

  • struct MyStruct: Comparable {
  • var name = "Untitled"
  • }
  • func <(lhs: MyStruct, rhs: MyStruct) -> Bool {
  • return lhs.name < rhs.name
  • }
  • // Implementation of == required by Equatable
  • func ==(lhs: MyStruct, rhs: MyStruct) -> Bool {
  • return lhs.name == rhs.name
  • }
  • let value1 = MyStruct()
  • var value2 = MyStruct()
  • let firstCheck = value1 < value2
  • // firstCheck is false
  • value2.name = "A New Name"
  • let secondCheck = value2 < value1
  • // secondCheck is true