Учитывая массив, содержащий любое количество объектов, как вы могли бы чисто и безопасно получить первые 3 элемента из него для хранения в новом массиве? Если массив не содержит не менее 3 элементов, он не должен запускать исключение во время выполнения, вместо этого он должен только добавить количество элементов в массиве к новому массиву.Хранить первые несколько элементов в массиве в другом массиве, если они существуют
Я думал, что это может работать, но он не будет компилировать в Xcode 7, и если это так, я не думаю, что будет вести себя спокойно, как я хочу:
let arr1 = [1, 2, 3, 4, 5]
let arr2 = arr1[0..<3]
//Expected: arr == [1, 2, 3]
let arr1 = [1, 2]
let arr2 = arr1[0..<3]
//Expected: arr2 == [1, 2]
let arr1 = [Int]()
let arr2 = arr1[0..<3]
//Expected: arr2 == []
Конечно всегда можно сделать что-то вроде этого, или вы можете использовать цикл for, но ни один из них не является чистым и кратким. Я хочу найти более быстрый способ.
let arr1 = [1, 2]
var arr2 = [Int]()
if photos.count > 0 {
arr2.append(arr1[0])
}
if photos.count > 1 {
arr2.append(arr1[1])
}
if photos.count > 2 {
arr2.append(arr1[2])
}
Как насчет диапазонов, таких как '3 .. <6'? –
@AaronBrager оригинальный вопрос примерно первый три. – MirekE
Идеально подходит для того, что мне нужно, просто красиво – Joey