如何获取 Int 值的所有数字

Ole*_*huk 2 swift swift3

是否有可能Int在 Swift 中获取变量的所有数字而不将此变量转换为string?

小例子我现在是怎么做的:

let number = 123456

let array = String(number).characters.map{Int(String($0)) ?? 0}
Run Code Online (Sandbox Code Playgroud)

Ida*_*dan 5

像这样的东西?

var number = 123456
var array = [Int]()

while number > 0 {
    array.append(number % 10)
    number = number / 10
}
array.reverse()
Run Code Online (Sandbox Code Playgroud)

  • 这是一个单行代码,尽管它的效率可能低于原始代码:`let array = (0...Int(ceil(log10(Float(number)))) - 1).reversed().map{(number / Int(NSDecimalNumber(decimal: pow(10, $0)))) % 10}` (2认同)