常见的编译型语言会在整数和浮点数之间保持明显的区分。此软件包的目的是允许执行数学运算,而无需进行类型转换。
注意:对根式的支持仍处于非常实验性的阶段。
正如 https://forums.swift.org/t/why-does-swift-not-support-rational-numbers/62725 中所述的原因,这种抽象在通用的、有用的方式中是不可行的。 值得注意的是,性能损失和溢出问题的增加使得它仅适用于部分情况。 如果您选择使用此软件包,请牢记这一点。
此软件包的目标
非目标
let m: Nuggle = 2.5
let n: Nuggle = 1.5
let p: Nuggle = 1
let ex: Nuggle = 2.5 + 1.5 + 1
XCTAssertEqual(m + n + p, ex)
XCTAssertEqual(m + n, 4)
XCTAssertEqual(m + n + p, 5)
XCTAssertEqual(m + n + p, 4 + 1.6/4.8 + 2/3)
XCTAssertEqual(m / n, 5 / 3)
XCTAssertEqual((m / n).description, "5/3")
XCTAssertEqual(ex.exactInt(), 5)
XCTAssertEqual((m * 3).double(), 7.5)
除非另有说明,否则此软件包中的所有文件均为 NOTICE
文件中提到的软件包贡献者的版权所有,并根据 Apache 2.0 许可协议 授权,该协议允许用于商业用途。