OrderedSet по сути является Swift-эквивалентом NSOrderedSet/NSMutableOrderedSet от Foundation. Он был создан для того, чтобы Swift имел уникальную упорядоченную коллекцию с быстрой производительностью поиска, поддерживающую строгую типизацию через Generics, и чтобы мы могли хранить в ней структуры и перечисления Swift.
OrderedSet работает очень похоже на массив. Вот несколько основных примеров его использования:
var set = OrderedSet < Int > ( )
set . append ( 1 )
set . contains ( 1 ) // => true
set [ 0 ] = 2
set [ 0 ] // => 2
set . insert ( 3 , at : 0 )
set // => [3, 2]
set = [ 1 , 2 , 3 ] // OrderedSet's support array literals
set // => [1, 2, 3]
set += [ 3 , 4 ] // You can concatenate any sequence type to an OrderedSet
set // => [1, 2, 3, 4] (Since 3 was already in the set it was not added again)
Также рекомендуется по возможности использовать методы экземпляра вместо глобальных методов Swift для поиска OrderedSet. Например, метод Swift.contains(haystack, Needle) будет перечислять OrderedSet вместо использования реализации быстрого поиска, которую будет выполнять метод OrderedSet.contains(needle).
Обязательно ознакомьтесь с модульными тестами, чтобы увидеть все различные способы взаимодействия с OrderedSet в действии. Вы также можете ознакомиться с примером проекта, который настраивает основной/подробный проект по умолчанию для использования OrderedSet вместо Array.
OrderedSet — это один файл Swift в каталоге Sources. Вы можете скопировать этот файл в свой проект или использовать его через CocoaPods, добавив следующую строку в свой подфайл:
pod 'OrderedSet' , '5.0'
или используйте через Карфаген, добавив
github "Weebly/OrderedSet"
в свой Cartfile и встраивая OrderedSet.framework в свое приложение.
Затем добавьте следующий импорт, где вы хотите использовать OrderedSet:
import OrderedSet
Использование SwiftPM:
package . append ( . package ( url : " https://github.com/Weebly/OrderedSet.git " , . upToNextMajor ( from : " 5.0.0 " ) ) )
OrderedSet доступен по лицензии MIT. Дополнительную информацию смотрите в файле ЛИЦЕНЗИИ.
Нам нравится, когда вы помогаете сделать OrderedSet лучше. Не стесняйтесь