SwiftyAlgebra 1.5.1

SwiftyAlgebra 1.5.1

Igor Matyushkin 维护。




  • 作者:
  • Igor Matyushkin

SwiftyAlgebra

概览

提供管理 Swift 中数字的工具集合。

如何开始

  • Source 文件夹的内容复制到您的项目中。

或者

  • 使用 SwiftyAlgebra cocoa pod

要求

  • iOS 9 及以上
  • Xcode 9 及以上
  • Swift 4

用法

数字简介

与使用许多独立的原始数字类型相比,SwiftyAlgebra 使用一个名为 Number 的通用类型,它底层与所有原始类型(如 Double 值)一起工作。Number 类与原始类型高度兼容,目前支持

  • Int
  • Float
  • Double

初始化新的数字非常简单

let integerNumber = Number(value: 10)

let someFloatValue: Float = 4.3
let floatNumber = Number(value: someFloatValue)

let doubleNumber = Number(value: 9.124)

您也可以轻松地获取原始值

let number = Number(value: 9.124)
number.int // 9
number.float // 9.124
number.double // 9.124

整数

检查数字是否为整数

let double1 = Number(value: 9.124)
double1.isInteger // false

let double2 = Number(value: 9.0)
double2.isInteger // true

检查数字是否为自然数

let int = Number(value: -20)
int1.isNatural // false

let double = Number(value: 20.0)
double.isNatural // true

检查数字是否为素数

let int1 = Number(value: 10)
int1.isPrime // false

let int2 = Number(value: 3)
int2.isPrime // true

自然数因子

let int = Number(value: 16)
let divisors = int.naturalDivisors // [1, 2, 4, 8, 16]

素数因子

let int = Number(value: 150)
let divisors = int.primeDivisors // [2, 3, 5]

素数分解

let int = Number(value: 150)
let divisors = int.primeFactorization // [2, 3, 5, 5]

运算符

一个 Number 可以轻松地添加到另一个

let ten = Number(value: 10)
let two = Number(value: 2)
let sum = ten + two
sum.int // 12

为了更好地与原始数值类型兼容,SwiftyAlgebra 提供了一套运算符,当您需要在同一表达式中使用 Number 和原始变量时,这些运算符可能会很有用

let number = Number(value: 10) + 2
number.int // 12

支持的运算符完整列表

左侧类型 运算符 右侧类型 示例
加法
Number + Number Number(value: 10) + Number(value: 2)
Number + Int Number(value: 10) + 2
Number + Float Number(value: 10) + 2.0
Number + Double Number(value: 10) + 2.0
Int + Number 10 + Number(value: 2)
Float + Number 10.0 + Number(value: 2)
Double + Number 10.0 + Number(value: 2)
Number += Number Number(value: 10.0) += Number(value: 2)
Number += Int Number(value: 10.0) += 2
Number += Float Number(value: 10.0) += 2.0
Number += Double Number(value: 10.0) += 2.0
Int += Number var value: Int = 10; value += Number(value: 2)
Float += Number var value: Float = 10.0; value += Number(value: 2.0)
Float += Number var value: Double = 10.0; value += Number(value: 2.0)
Float ++ None let number = Number(value: 10); number++
减法
Number - Number Number(value: 10) - Number(value: 2)
Number - Int Number(value: 10) - 2
Number - Float Number(value: 10) - 2.0
Number - Double Number(value: 10) - 2.0
Int - Number 10 - Number(value: 2)
Float - Number 10.0 - Number(value: 2)
Double - Number 10.0 - Number(value: 2)
Number -= Number Number(value: 10.0) -= Number(value: 2)
Number -= Int Number(value: 10.0) -= 2
Number -= Float Number(value: 10.0) -= 2.0
Number -= Double Number(value: 10.0) -= 2.0
Int -= Number var value: Int = 10; value -= Number(value: 2)
Float -= Number var value: Float = 10.0; value -= Number(value: 2.0)
Float -= Number var value: Double = 10.0; value -= Number(value: 2.0)
Float -- None let number = Number(value: 10); number--
乘法
Number * Number Number(value: 10) * Number(value: 2)
Number * Int Number(value: 10) * 2
Number * Float Number(value: 10) * 2.0
Number * Double Number(value: 10) * 2.0
Int * Number 10 * Number(value: 2)
Float * Number 10.0 * Number(value: 2)
Double * Number 10.0 * Number(value: 2)
Number *= Number Number(value: 10.0) *= Number(value: 2)
Number *= Int Number(value: 10.0) *= 2
Number *= Float Number(value: 10.0) *= 2.0
Number *= Double Number(value: 10.0) *= 2.0
Int *= Number var value: Int = 10; value *= Number(value: 2)
Float *= Number var value: Float = 10.0; value *= Number(value: 2.0)
Float *= Number var value: Double = 10.0; value *= Number(value: 2.0)
除法
Number / Number Number(value: 10) / Number(value: 2)
Number / Int Number(value: 10) / 2
Number / Float Number(value: 10) / 2.0
Number / Double Number(value: 10) / 2.0
Int / Number 10 / Number(value: 2)
Float / Number 10.0 / Number(value: 2)
Double / Number 10.0 / Number(value: 2)
Number /= Number Number(value: 10.0) /= Number(value: 2)
Number /= Int Number(value: 10.0) /= 2
Number /= Float Number(value: 10.0) /= 2.0
Number /= Double Number(value: 10.0) /= 2.0
Int /= Number var value: Int = 10; value /= Number(value: 2)
Float /= Number var value: Float = 10.0; value /= Number(value: 2.0)
Float /= Number var value: Double = 10.0; value /= Number(value: 2.0)

许可证

SwiftyAlgebra 基于 MIT 许可证提供。更多详情请参阅许可证文件。