Swift 有理数

简介

Swift 有理数 提供了 RationalModule 模块,用于在 Swift 中处理有理数。

import RationalModule

let half = Rational<Int>(1, 2)

RationalModule 只有一个依赖项:swift-numerics

在您的项目中使用 Swift 有理数

要在 SwiftPM 项目中使用 Swift 有理数

  1. 将以下行添加到您的 Package.swift 文件中的 dependencies 中
.package(url: "https://github.com/abdel-17/swift-rational", from: "1.0.0")
  1. RationalModule 作为您目标的一个依赖项添加
.target(
	name: "TargetName",
	dependencies: [
		.product(name: "RationalModule", package: "swift-rational")
	]
)
  1. 在您的源代码中添加 import RationalModule

API

RationalModule 导出了 Rational 结构体。 它符合标准的 Swift 协议,例如 AdditiveArithmeticNumericHashableComparable 等等。

您可以使用分数初始化器创建一个 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 的。