что то не работает в песочнице и в проекте
поправочка
Можно использовать то что поваляет выйти.
Для функции return:
func test() {
guard true else { return }
}
Для switch break:
switch str {
case let str where str == "Hello":
guard !str.isEmpty else { break }
default:
break
}
Для циклов break/continue:
while true {
guard true else { continue }
}
Надо загуглить что такое сеты и чем они отличаются от массивов.
Самое очевидное, что в множестве не дублируются объекты и они неотсортированы.
Но надо смотреть как они устроены внутри и под нужную задачу выбирать нужную коллекцию. Если объем данных небольшой, то пофигу вообще - массивы все используют и не парятся.
Но если объем данных большой и надо постоянно сравнивать и сверять объекты на вхождение, то нужно брать множества.
У массивов и множеств разная скорость добавления-удаления и выборки элемента.
Хотел было про сэты написать, но опытный товарищ @haymob всё сказал: самое частое их пременение видел для удаления дублей в остальных коллекция ))
еще одно отличие if от guard состоит в том, что в if отрицательное условие часто выполняется в конце и для этого перебираются все предыдущие варианты, в то время как в guard сразу рассматривается отрицательный вариант и если он отсутствует, то можно работать с данными дальше. Поэтому он и называется guard, т.е., страж или сторож, который пропускает только тех, кто нужен.
И да, на маленьких блоках кода разница практически отсутствует (за исключением области видимости), она становится заметной именно когда используются несколько if.