Изменение массивов
Часть раздела Основы путешествия по Swift на Coddy — урок 64 из 86.
Массивы становятся по-настоящему полезными, когда вы можете изменять их содержимое. Чтобы изменить массив, вы должны объявить его с помощью var вместо let.
Вы можете изменить существующий элемент, присвоив новое значение конкретному индексу:
var colors = ["Red", "Green", "Blue"]
colors[1] = "Yellow"
print(colors) // ["Red", "Yellow", "Blue"]Чтобы добавить новые элементы, используйте метод append для одного элемента или оператор += для добавления нескольких элементов одновременно:
var numbers = [1, 2, 3]
numbers.append(4)
print(numbers) // [1, 2, 3, 4]
numbers += [5, 6]
print(numbers) // [1, 2, 3, 4, 5, 6]Чтобы вставить элемент в определенную позицию, используйте метод insert:
var fruits = ["Apple", "Orange"]
fruits.insert("Banana", at: 1)
print(fruits) // ["Apple", "Banana", "Orange"]Чтобы удалить элементы, используйте remove(at:) с индексом, который вы хотите удалить:
var items = ["A", "B", "C", "D"]
items.remove(at: 2)
print(items) // ["A", "B", "D"]Помните, что при удалении элемента все последующие элементы сдвигаются, чтобы заполнить пустое место.
Задание
ЛегкоНапишите функцию modifyInventory, которая принимает массив элементов, новый элемент для добавления и индекс для удаления, а затем возвращает измененный массив.
Выполните следующие операции по порядку:
- Измените первый элемент на
"Updated" - Добавьте новый элемент в конец массива
- Удалите элемент по указанному индексу
Параметры:
items([String]): Исходный массив элементовnewItem(String): Элемент для добавленияremoveIndex(Int): Индекс элемента, который нужно удалить (после добавления)
Возвращает: Измененный массив после всех операций ([String])
Пример: Если items равен ["A", "B", "C"], newItem равен "D", а removeIndex равен 2, функция должна:
- Изменить первый элемент:
["Updated", "B", "C"] - Добавить "D":
["Updated", "B", "C", "D"] - Удалить по индексу 2:
["Updated", "B", "D"]
Шпаргалка
Массивы, объявленные с помощью var, могут быть изменены, в то время как массивы, объявленные с помощью let, являются неизменяемыми.
Измените элемент, присвоив новое значение конкретному индексу:
var colors = ["Red", "Green", "Blue"]
colors[1] = "Yellow" // ["Red", "Yellow", "Blue"]Добавьте один элемент с помощью append:
var numbers = [1, 2, 3]
numbers.append(4) // [1, 2, 3, 4]Добавьте несколько элементов с помощью +=:
numbers += [5, 6] // [1, 2, 3, 4, 5, 6]Вставьте элемент в определенную позицию с помощью insert(_:at:):
var fruits = ["Apple", "Orange"]
fruits.insert("Banana", at: 1) // ["Apple", "Banana", "Orange"]Удалите элемент по определенному индексу с помощью remove(at:):
var items = ["A", "B", "C", "D"]
items.remove(at: 2) // ["A", "B", "D"]При удалении элемента все последующие элементы сдвигаются, чтобы заполнить пустое место.
Попробуйте сами
func modifyInventory(items: [String], newItem: String, removeIndex: Int) -> [String] {
// Напишите код здесь
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСоставное присваиваниеПовторение: Простая математикаОператоры сравнения7Основы ввода-вывода
Функция PrintИнтерполяция строкВвод через ReadLineПреобразование типовПовторение — до 120Повторение — True или False10Функции
Объявление функцииПараметры и аргументыВозвращаемые значенияМетки аргументовПовторение: функция SigmaПовторение: функция валидацииЗначения по умолчанию13Итерирование по последовательностям
Итерирование по элементамМетод enumerateИтерирование по строкам, ч. 1Итерирование по строкам, ч. 22Переменные
Let против VarАннотации типовЧислаСтрокиBooleanСоглашения об именованииИтоги — Инициализация переменных5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение: простая логикаЛогические операторы. Часть 3Тернарный оператор8Калькулятор разделения счета
Приветственное сообщениеПолучение ввода14Массивы: Продвинутый уровень
Срезы массивов. Часть 1Срезы массивов. Часть 2Операторы последовательностейМетод Contains3Опционалы
Что такое опционалыРазвертывание с помощью if letGuard letОператор объединения с nilИтоги — безопасное развертывание6Принятие решений
Оператор IfКонструкция If - ElseПовторение — Простой калькуляторОператор SwitchSwitch с диапазонами9Циклы
Цикл For-InЦикл WhileЦикл Repeat-WhileBreakContinueПовторение: ФакториалДиапазоны в циклахВложенные циклыПовторение: Динамический ввод12Основы массивов
Объявление массиваДоступ к элементамИзменение массивовМетоды массивовПовторение — Список товаровПовторение — Перевернутый массивКортежи