DLInterval 1.3.0

DLInterval 1.3.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2018年1月
SwiftSwift 版本4.0
SPM支持 SPM

David Livadaru 维护。



  • 作者:
  • David Livadaru

DLInterval Logo

Carthage compatible
CocoaPods compatible
Swift Package Manager
Swift 4.0

这个 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。

操作系统需求

  • iOS 10.0 及更高版本。
  • watchOS 3.0 及更高版本。
  • tvOS 10.0 及更高版本。
  • macOS 10.11 及更高版本。
  • Ubuntu 检查 官方网站,它提供了对 Swift 4.0 的支持。

选择您首选的依赖管理器

1. Carthage

将依赖关系添加到您的 Cartfile 中。

github "davidlivadaru/DLInterval"

如果您只需要单一操作系统中的框架,那么我建议在执行 carthage update 时使用 --platform [iOS|macOS|watchOS|tvOS] 规范符。

您必须使用以下方式导入模块

import DLInterval_iOS
import DLInterval_macOS
import DLInterval_watchOS
import DLInterval_tvOS

2. CocoaPods

将依赖关系添加到您的 Podfile 中。

pod 'DLInterval'

您必须使用以下方式导入模块

import DLInterval

3. Swift 包管理器

在您的 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