Noetic Garden 是 millenomi 的一个梦想。
Noetic Garden Picos 是微小的软件包,其中包含我从一个项目带到另一个项目的、经常重复使用的小功能。欢迎在您的项目中使用它们。Picos 已经在 Apple OS、Linux 和 Windows 上进行了测试。
ElementsBuilder 包包含了 ElementsBuilder
协议,该协议用于快速构建结果构建器,这些构建器可以将多个值收集到一个数组中。
要快速创建一个新的结果构建器类型,只需创建一个符合此协议并适当设置 Element
类型别名的类型即可。例如
@resultBuilder
struct IntsBuilder: ElementsBuilder {
typealias Element = Int
}
然后您可以像这样使用结果构建器
@IntsBuilder var ints: [Int] {
4
8
for int in [15, 16] {
int
}
if jokeGoesTheFullDistance {
23
42
}
}
通过向您的类型添加您自己的 buildExpression
和 buildFinalResult
方法来自定义构建器。例如
@resultBuilder
struct IntsBuilder: ElementsBuilder {
typealias Element = Int
static func buildFinalResult(_ component: [Self.Element]) -> MyIntPackType {
return .init(numbers: component)
}
}
// …
@IntsBuilder var ints: MyIntPackType { … }
将此仓库添加为 Swift Package Manager 依赖项
.package(url: "https://github.com/noeticgarden/pico-elementsbuilder.git", from: "1.0.0"),
然后,使用 ElementsBuilder
模块
dependencies: [
.product("ElementsBuilder", package: "pico-elementsbuilder"),
]
使用此仓库的 Issues 选项卡报告问题。欢迎提交拉取请求,但需所有者审核。所有支持和 PR 接受均为尽力而为,不作保证。请友善待人。