Swift:减少功能

时间:2016-04-25 06:40:07

标签: swift

我有一个数组

let digits = ["3", "1", "4", "1"]

我想将它们转换为Int3141

我试过了

let digits = ["3", "1", "4", "1"]
let myDigit = Int(digits.reduce("") { $0 + $1 })
print(myDigit) //3141

但我不想包裹所有Int()的{​​{1}},我只想使用digits.reduce("") { $0 + $1 }来实现这一目标。 (我们可以在reduce函数内使用Int()

怎么做?还有其他方法可以实现这个目标吗?

任何帮助将不胜感激。感谢。

2 个答案:

答案 0 :(得分:1)

另一种减少方法。在某些时候,没有办法将你拥有的字符串转换为Ints。

let digits = ["3", "1", "4", "1"]
let number = digits.reduce(0) { 10 * $0 + Int($1, radix: 10)! }
print(number)

答案 1 :(得分:-1)

我认为您不能使用reduce来实现这一目标,但您可以这样做:

var number = Int()

let digits = ["3", "1", "4", "1"]
var numberString = String()
for digit in digits{
    numberString.appendContentsOf(digit)
}
if let final = Int(numberString){
    number = final
}   
print(number)