Основы того, что вы пытаетесь сделать, - это получить значение из источника данных, преобразовать его в число, если необходимо, и затем суммировать их.
Для вашего примера выше, это бы сработало:
let news = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
let total = news.map({ Int($0)! }).reduce(0) { x, y in
return x + y
}
print(total) // 55
Чтобы сделать это для корзины покупок, вашим источником данных, скорее всего, будет список продуктов, возможно, что-то вроде:
struct Product
{
var name: String
var price: Int
var quantity: Int
}
let prod1 = Product(name: "Coka Cola", price: 2, quantity: 2)
let prod2 = Product(name: "Bread", price: 1, quantity: 1)
let prod3 = Product(name: "Sweets", price: 2, quantity: 4)
let shoppingCart = [prod1, prod2, prod3]
let total = shoppingCart.reduce(0) { x, y in
return x + (y.price * y.quantity)
}
print(total) // 13
Это тот же принцип, только немного сложнее. Пока ваша структура данных правильная, она должна быть прямой