Swift 数字通过作用于单个数字的实用方法扩展了 Swift 内置的整数类型。
数字总是相对于基数的位置系统。因此,所有方法都采用一个 usingBase
参数,该参数默认为基数 10,即十进制系统。
计算数字的位数。
let _ = 2014.countDigits() // returns 4
let _ = 2014.countDigits(usingBase: 16) // returns 3, as 2014 = 0x7de
计算数字的总和。
let _ = 2014.sumDigits() // returns 7, as 7 = 2 + 0 + 1 + 4
let _ = 0x7de.sumDigits(usingBase: 16) // returns 34 or 0x22, as 0x22 = 0x7 + 0xd + 0xe
反转数字的顺序。
let _ = 2014.revertDigits() // returns 4102
let _ = 0x7de.revertDigits(usingBase: 16) // returns 3799 or 0xed7
通过从最大可能的数字中减去每个数字来反转它,例如,在十进制系统中是 9。因此,0 变为 9 = 9 - 0,1 变为 8 = 9 - 1,等等。
let _ = 2014.invertDigits() // returns 7985
let _ = 0x7de.invertDigits(usingBase: 16) // returns 2081 or 0x821
将数字的所有出现替换为另一个数字。
var counter = 1010
counter.replaceDigit(0, with: 1)
// counter == 1111
var hexCounter = 0xf0
hexCounter.replaceDigit(0xf, with: 0xc, usingBase: 16)
// counter == 0xc0 or 192
或者,有一个非变异方法
var counter = 1010.replacingDigit(0, with: 1)
// counter == 1111
返回一个遍历数字的迭代器。
for digit in 2014.digits() {
print(digit)
}
// prints
// 2
// 0
// 1
// 4
for digit in 0x7de.digits(usingBase: 16) {
print(digit)
}
// prints
// 7
// 13 or 0xd
// 14 or 0xe
返回一个数组,其中包含数字的数字,最高有效数字位于开头。
let _ = 2014.asDigits() // returns [2, 0, 1, 4]
let _ = 0xfde.asDigits(usingBase: 16) // returns [15 or 0xf, 13 or 0xd, 14 or 0xe]
返回数字中包含的最高位因子,即最高有效数字的因子。
let _ = 12.highestPositionalFactor() // returns 10, as 12 = 1 * 10 + 2 * 1
let _ = 933.highestPositionalFactor()) // returns 100, as 933 = 9 * 100 + 3 * 10 + 3 * 1
let _ = 0xc.highestPositionalFactor(usingBase: 16)) // returns 1, as 0xc = 12 * 1
let _ = 0x5d.highestPositionalFactor(usingBase: 16)) // returns 16, as 0x5d = 5 * 16 + 13 * 1
要在 SwiftPM 项目中使用 Digits
库,请将其添加到您的包和命令行可执行目标的依赖项中
let package = Package(
// name, platforms, products, etc.
dependencies: [
// other dependencies
.package(url: "https://github.com/astzweig/swift-digits", from: "1.0.0"),
],
targets: [
.executableTarget(name: "<command-line-tool>", dependencies: [
// other dependencies
.product(name: "Digits", package: "swift-digits"),
]),
// other targets
]
)
最新版本的 swift-digits 支持 Swift 5.5 及更高版本。 下面详细介绍了 swift-digits 版本支持的最低 Swift 版本
swift-digits | 最低 Swift 版本 |
---|---|
0.0.1 ... |
5.5 |