Swift 有理数 提供了 RationalModule
模块,用于在 Swift 中处理有理数。
import RationalModule
let half = Rational<Int>(1, 2)
RationalModule
只有一个依赖项:swift-numerics。
要在 SwiftPM 项目中使用 Swift 有理数
Package.swift
文件中的 dependencies 中.package(url: "https://github.com/abdel-17/swift-rational", from: "1.0.0")
RationalModule
作为您目标的一个依赖项添加.target(
name: "TargetName",
dependencies: [
.product(name: "RationalModule", package: "swift-rational")
]
)
import RationalModule
。RationalModule
导出了 Rational
结构体。 它符合标准的 Swift 协议,例如 AdditiveArithmetic
、Numeric
、Hashable
、Comparable
等等。
您可以使用分数初始化器创建一个 Rational
值。
let half = Rational(2, 4)
print(x.numerator) // 1
print(x.denominator) // 2
您也可以使用整数初始化器。
let one = Rational(1)
或者直接使用整数文字。
let two: Rational<Int> = 2
Rational
支持标准的算术和比较运算符。
Rational(1, 2) + Rational(1, 4) // Rational(3, 4)
Rational(1) - Rational(1, 2) // Rational(1, 2)
Rational(2) * Rational(3, 4) // Rational(3, 2)
Rational(1) / Rational(1, 2) // Rational(2, 1)
Rational(1, 2) < Rational(3, 4) // true
许多实现都是从 Python 的 fractions 模块移植到 Swift 的。