У меня есть массив, который содержит объекты разных типов.В моем реальном коде это пользовательские типы, которые соответствуют одному и тому же протоколу, но принцип также применим к следующему коду:
let anyObjectArray: [Any] = [51, "g", "hello", 1, 30111]
var sortedArray: [Any] = []
for item in anyObjectArray where item is Int {
sortedArray.append(item)
}
for item in anyObjectArray where item is String {
sortedArray.append(item)
}
print(sortedArray)
// 51, 1, 30111, "g", "hello"
Как вы можете видеть, я хочу отсортировать массив по типу элемента.
Мне интересно, если итерация несколько раз по массиву является подходящим подходом.Есть ли возможность использовать .map для сортировки массива по типу элемента, и если это так, будет ли это более эффективным?
Массивы в моем реальном коде будут содержать максимум 4-5 элементов, иногда только одинс другой стороны, было бы больше разных типов, чем просто два, поэтому число циклов for in будет больше (возможно, 4-5)