一个 Swift 包,提供一个类型 Delta<Element>,包含三种情况:
source(Element)target(Element)transition(source: Element, target: Element)Delta 类型代表一种包含性 OR 关系:要么有一个源元素可用,要么有一个目标元素可用,或者两者都可用。Delta 的行为类似于 Optional,但它不是表示 0 或 1 个元素,而是表示 1 或 2 个元素。
源和目标被描述为 delta 的两个方面。可以通过可选的 source 和 target 属性访问这两个方面。便捷的方法,如 resolve(favoring:) 和 merge(coalesce:) 也提供了对元素的访问。
使用 map(:)、asyncMap(:)、mapAny(:) 或 mapAll(:) 将一个 Delta 值转换为不同的 Delta 值。
Delta 类型也符合所有标准协议(取决于其 Element 类型的符合性):
Equatable(可比较)Hashable(可哈希)CustomDebugStringConvertible(自定义调试字符串转换)Encodable(可编码)EncodableWithConfiguration(可配置编码)Decodable(可解码)DecodableWithConfiguration(可配置解码)Sendable(可发送)BitwiseCopyable(按位可复制)~Copyable(不可复制)此外,Delta 符合 RandomAccessCollection,允许遍历元素以及 Sequence、Collection 和 BidirectionalCollection 提供的许多其他操作。