Swift   DocC   Artifactory

集合构建器 (Collection Builders)

用于 ArraySet 的 Swift 结果构建器 (Result Builders)

概述

使用 结果构建器 创建或修改数组和集合,允许使用内联逻辑,例如 if/elseswitchfor 循环和可用性检查。 并且不需要使用逗号来分隔元素。

例如,与 Combine 结合使用时,结果构建器可用于将 AnyCancellable 实例添加到 Set,而无需单独调用每个实例上的 store(in:)

请参阅示例代码(如下)中的 常见用例示例

API

数组 (Array)

init(@Builder elements: () -> Self)
static func build(@Builder elements: () -> Self) -> Self
mutating func append(@Builder elements: () -> Self)
func appending(@Builder elements: () -> Self) -> Self

集合 (Set)

init(@Builder elements: () -> Self)
static func build(@Builder elements: () -> Self) -> Self
mutating func insert(@Builder elements: () -> Self)
func inserting(@Builder elements: () -> Self) -> Self

最低要求

安装

Swift 包管理器 (Swift Package Manager)

包依赖 (Package Dependency)

<version> 替换为所需的最低版本。

.package(url: "https://github.com/Tinder/CollectionBuilders.git", from: "<version>")

目标依赖 (Target Dependency)

"CollectionBuilders"

Swift 包集合 (Swift Package Collection)

https://swiftpackageindex.cn/Tinder/collection.json

支持的类型

ArraySet 结果构建器可以与任何 Element 类型一起使用。

代码示例

常见用例示例

Array<NSLayoutConstraint>

NSLayoutConstraint.activate(Array {
    subview.leftAnchor.constraint(equalTo: view.leftAnchor)
    subview.rightAnchor.constraint(equalTo: view.rightAnchor)
    subview.topAnchor.constraint(equalTo: view.topAnchor)
    subview.bottomAnchor.constraint(equalTo: view.bottomAnchor)
})

Set<AnyCancellable>

var cancellables = Set<AnyCancellable>()

cancellables.formUnion(Set {
    publisherA.sink { value in }
    publisherB.assign(to: \.keyPath, on: object)
})

或 (OR)

var cancellables = Set<AnyCancellable>()

cancellables.insert {
    publisherA.sink { value in }
    publisherB.assign(to: \.keyPath, on: object)
}

贡献

虽然感谢您对贡献此项目的兴趣,但开源此项目的目的仅在于与社区分享。 这意味着我们目前无法接受外部贡献,并且不会审查或合并拉取请求。 要报告安全问题或漏洞,请提交 GitHub 问题。

许可证

Match Group 修改的 3 条款 BSD 许可证 下获得许可。