一个 Swift 属性包装器,用于自动将 `Comparable` 值限制在闭区间或半开区间内。
Comparable
类型的值限制在 ClosedRange
或“半开”区间内。PartialRangeThrough
、PartialRangeFrom
或 PartialRangeUpTo
表达式来初始化被限制的 FloatingPoint
属性。FloatingPoint
或 FixedWidthInteger
属性。选择 File
-> Swift Packages
-> Add Package Dependency
,然后输入 https://github.com/CypherPoet/ClampedPropertyWrapper
。
您可以将 ClampedPropertyWrapper
作为包依赖项添加到您的 Package.swift
文件中。
let package = Package(
//...
dependencies: [
.package(url: "https://github.com/CypherPoet/ClampedPropertyWrapper", .upToNextMinor(from: "0.2.0")),
],
//...
)
然后,在您的任何需要它的包目标中,将 ClampedPropertyWrapper
引用为“目标依赖项”。
targets: [
.target(
name: "YourLibrary",
dependencies: [
"ClampedPropertyWrapper",
],
...
),
...
]
然后,只需在您想使用它的地方 import ClampedPropertyWrapper
即可。
基本示例:
import ClampedPropertyWrapper
struct Player {
@Clamped(
above: 0.0.nextDown,
andBelow: .infinity
)
var xp: Double = 0.0
@Clamped(to: 1..<100)
var level: Int = 1
@Clamped(above: 0.0, andBelow: Double.infinity)
var number: Double = 1.0
@Clamped(to: "A"..."Z")
var firstInitial: Character = "A"
@Clamped(to: 0.0...)
var ammo: Double = 0.1
@Clamped(to: ...100.0)
var reputation: Double = .zero
@Clamped(to: ..<20)
var weeklyLeaderboardRankChange: Int = .zero
}
您还可以在 此项目的 Xcode Playground 中深入了解。:
非常欢迎对 ClampedPropertyWrapper
做出贡献。查看一些 问题模板 以获取更多信息。
文档由 Swift Doc 生成。 安装说明可以在 这里 找到,一旦您设置好它,只需从命令行运行 ./Scripts/generate-html-docs.zsh
即可生成文档。
📝 请注意,这只会生成一个 .build/documentation
文件夹供您在本地查看。 该文件夹已被 git
忽略,并且存在一个 GitHub action,以自动在根级别生成文档并在项目的 gh-pages
分支上提供它们。
ClampedPropertyWrapper
在 MIT 许可证下可用。 有关更多信息,请参见 LICENSE 文件。