我有一个数组
let digits = ["3", "1", "4", "1"]
我想将它们转换为Int
值3141
我试过了
let digits = ["3", "1", "4", "1"]
let myDigit = Int(digits.reduce("") { $0 + $1 })
print(myDigit) //3141
但我不想包裹所有Int()
的{{1}},我只想使用digits.reduce("") { $0 + $1 }
来实现这一目标。 (我们可以在reduce
函数内使用Int()
)
怎么做?还有其他方法可以实现这个目标吗?
任何帮助将不胜感激。感谢。
答案 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)