iOS разработчик, который делится фишками, своим опытом и опытом других.
В этом канале вы сможете найти истории из жизни, подходы к реализации а также новости и тренды из мира iOS-разработки
Авторский канал, iOS разработка
Перебор элементов и индексов в коллекциях Swift
🤔Автор считает, что enumerated() для получения элементов и индексов не самый правильный способ и предлагает альтернативу.
Интовое значение через enumerated() не должно использоваться в качестве индекса, если только коллекция не zero-based и не индексирована целыми числами. Это счетчик, который всегда начинается с нуля.
🧑💻 Для перебора элементов и индексов можно использовать функцию zip().
// Array<String>
var ingredients = ["potatoes", "cheese", "cream"]
// Array<String>.SubSequence
var doubleIngredients = ingredients.dropFirst()
for (i, ingredient) in zip(
doubleIngredients.indices, doubleIngredients
) {
// do something with the index
doubleIngredients[i] = "\(ingredient) x 2"
}
Мы можем отказаться от enumerated() и подсчитывать элементы с помощью функции zip(). Это можно использовать для продвинутого контроля, начинаем ли мы считать с 0 или с 1.
📖 Кстати! В этой статье можно почитать, как использовать zip для объединения двух массивов.