| 测试已测试 | ✓ |
| Lang语言 | SwiftSwift |
| 许可证 | MIT |
| 发布最后发布 | 2018年1月 |
| SwiftSwift 版本 | 4.0 |
| SPM支持 SPM | ✓ |
由 David Livadaru 维护。
这个 Swift 模块旨在提供一个解决方案,方便创建数学区间。
Interval 提供了构造函数来创建类似于数学中常用的区间
[1, 2] 和 (1, 2)
let closedClosed = Interval([1..2]) // [1, 2]
let openOpen = Interval((1..2)) // (1, 2)为了方便,可以使用范围运算符
let closedClosed: Interval = 1...2 // [1, 2]
let closedOpen: Interval = 1..<2 // [1, 2)对于半开区间,有一些新的运算符
.>. - 第一边界是开区间.<. - 第二边界是开区间.><. - 两个边界都是开区间let closedOpen: Interval = 1.<.2 // [1, 2)
let openClosed: Interval = 1.>.2 // (1, 2]
let openOpen: Interval = 1.><.2 // (1, 2)创建以无穷大为边界的区间
let negativeInfinity: Interval = -Double.infinity.>.0 // (-inf, 0]
let positiveInfinity: Interval = 0.><.Double.Infinity // (0, +inf)注意:使用无穷大创建具有闭边界的区间会失败。
您可以检查一个区间是否包含一个双值
let closedOpen: Interval = 1.<.2
closedOpen.contains(1) // true
closedOpen.contains(2) // false
closedOpen.contains(1.1) // true检查无穷大值
let closedOpen: Interval = 1.<.2
closedOpen.contains(Double.infinity) // false
closedOpen.contains(-Double.infinity) // false
let positiveInfinity: Interval = 0.><.Double.Infinity
positiveInfinity.contains(Double.infinity) // true
positiveInfinity.contains(-Double.infinity) // false从两个区间创建并集
let firstInterval: Interval = -Double.infinity.>.0 // (-inf, 0]
let secondInterval: Interval = 0.><.1 // (0, 1)
let union = firstInterval.formUnion(secondInterval) // (-inf, 1)注意,union 是一种名为 UnionInterval 的新数据类型。
要找到两个区间的交集
let firstInterval: Interval = -Double.infinity.><.1 // (-inf, 1)
let secondInterval: Interval = -1.><.5.0 // (-1, 5)
let intersection = firstInterval.intersection(with: secondInterval) // (-1, 1)注意,Interval 的交集返回一个 Interval?,而 UnionInterval 的返回值是 UnionInterval。
模块需要 Swift 4.0。
操作系统需求
选择您首选的依赖管理器
将依赖关系添加到您的 Cartfile 中。
github "davidlivadaru/DLInterval"
如果您只需要单一操作系统中的框架,那么我建议在执行 carthage update 时使用 --platform [iOS|macOS|watchOS|tvOS] 规范符。
您必须使用以下方式导入模块
import DLInterval_iOS
import DLInterval_macOS
import DLInterval_watchOS
import DLInterval_tvOS将依赖关系添加到您的 Podfile 中。
pod 'DLInterval'
您必须使用以下方式导入模块
import DLInterval在您的 Package.swift 中添加以下依赖项
dependencies: [
.package(url: "https://github.com/davidlivadaru/DLInterval.git", .upToNextMinor(from: "1.0.0"))
]
并更新您的目标依赖
targets: [
.target(
name: "YourTargetName",
dependencies: ["DLInterval"])),
]
您必须使用以下方式导入模块
import DLInterval模块由单元测试覆盖,但错误总是会在所难免。
如果您在该模块中发现错误,请创建一个 问题。
如果您想通过修复错误或实现新功能进行贡献,请创建一个 pull request。
DLInterval 根据 MIT 许可证发布。有关详细信息,请参阅 LICENSE。