简介

OrderedSet 本质上是 Swift 中与 Foundation 框架中的 NSOrderedSet/NSMutableOrderedSet 对应的实现。它的创建是为了让 Swift 拥有一个独特的、有序的集合,该集合具有快速查找性能,并通过泛型支持强类型,从而我们可以将 Swift 的结构体 (struct) 和枚举 (enum) 存储在其中。

用法

OrderedSet 的使用方式非常类似于 Array (数组)。以下是一些基本用法示例:

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 是 Sources 目录中的单个 Swift 文件。您可以将该文件复制到您的项目中,或者通过 CocoaPods 使用,方法是将以下行添加到您的 Podfile 中:

pod 'OrderedSet', '5.0'

或者通过 Carthage 使用,方法是添加

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 许可证下可用。 有关更多信息,请参见 LICENSE 文件。

贡献

我们非常乐意得到您的帮助,以使 OrderedSet 更好。 随时可以