Урок 10. Множества

14 Января 2023

Задача 10.1 📚

Создайте множество colors, и наполните его разными цветами. Далее добавьте желтый цвет в том случае если количество элементов во множестве меньше трех. 

Выведите множество на консоль.

				
					var colors: Set = ["Red", "Blue"]

if colors.count < 3 {
    colors.insert("Yellow")
}

print(colors)
				
			

Множество является переменной, так как мы вносим в него изменения.  Что бы показать компилятору, что это именно множество, мы должны прописать тип явно, но не вес тип, а только Set, то есть следующая запись будет считаться избыточной:

				
					var colors: Set<String> = ["Red", "Blue"]
				
			

Компилятор и без вашей помощи видит что значения во множестве с типом String, поэтому это лишний код. Но это конечно не ошибка, а скорее рекомендация.

В условии мы определяем если количество элементов меньше трех, то будет выполнен код в внутри фигурных скобок, и мы при помощи метода insert() добавим элемент во множество.

Давайте я вам накину еще один полезный метод и называется он joined(separator: ) более подробней о нем можно почитать в документации Apple 

Но если в коротко, то этот метод позволяет вывести на консоль элементы коллекции через любой разделитель, который вы определите в параметре separator, Как это будет выглядеть на нашем примере:

В качестве разделителя мы определили запятую и пробел, поэтому видим на консоли не квадратные скобки, а просто список элементов перечисленных через запятую. 

Задача 10.2 📚

Для добавления используйте метод insert(), а для удаления remove(). Что бы вывести на консоль список имен через точку с запятой используйте метод joined(separator: )

Создайте множество с именами. Если окажется что множество пустое, то добавьте в него новое имя. Если же там элементов больше пяти, то удалите тот элемент, который внесет пользователь. 

Выведите на консоль список имен, через точку с запятой. 

				
					var names: Set = ["Ann", "Bill", "Tim", "Bob", "Hloya", "Eva"]
let name = "Ann"

if names.isEmpty {
    names.insert("Bob")
} else if names.count > 5 {
    names.remove(name)
}

print(names.joined(separator: ", "))
				
			

Множество является переменной, потому что мы вносим в него изменения. Так же у нас обязательно должно быть свойство name, оно в себе будет хранить внесенное значение пользователем. Так как мы его не меняем то оно является константой. 

Далее определяем условие, если множество пустое, то мы добавляем элемент при помощи метода insert(). Если количество элементов множества перевалит за значение 5, то мы удалим тот элемент который внес пользователь.

Если удаляемого элемента в множестве не окажется, то ничего не произойдет, метод просто вернет nil, но это уже другая история, к которой мы обратимся чуть позже. 

Определять свойство для значения 5 будет не лучшим решением:

				
					var names: Set = ["Any", "Bill", "Tim", "Bob", "Hloya", "Eva"]
let name = "Ann"
let counter = 5

if names.isEmpty {
    names.insert("Bob")
} else if names.count > counter {
    names.remove(name)
}
				
			

Конечно все будет зависеть от обстоятельств, и в некоторых случаях это будет оправдано, но в нашем контексте это вполне себе конкретное значение, которое мы используем в одном условии, поэтому дополнительное свойству будет лишним. “Лишний код – плохой код”

Поддержите наш проект, и помогите изменить подход к обучению!

Развивайся вместе с нами

Поддержите наш проект, и помогите изменить подход к обучению!

Address List

Social Networks

Поддержите наш проект, и помогите изменить подход к обучению!