let array = [1,5,6,"50","Hi",54] as [Any]
У меня есть массив, подобный этому, в котором требуется сумма всех возможных значений из этой коллекции Использование функции более высокого порядка
let array = [1,5,6,"50","Hi",54] as [Any]
У меня есть массив, подобный этому, в котором требуется сумма всех возможных значений из этой коллекции Использование функции более высокого порядка
Это работает для Int
s и String
s, которые могут быть преобразованы в Int
. Он отбрасывает строки, которые не могут быть преобразованы, и игнорирует все другие типы.
let result = array.reduce(into: 0) { partialResult, item in
switch item {
case let someInt as Int:
partialResult += someInt
case let someString as String:
if let intValue = Int(someString) {
partialResult += intValue
}
default:
break
}
}