Вопросы от новичка


#21

что то не работает в песочнице и в проекте

поправочка


#22

___________оберните в функцию


#23

Можно использовать то что поваляет выйти.

Для функции 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 }
}

#24

Песочница это зло :-1:


#25

Разница в читаемости. (…)


#26

чем же это? если в ней многое можно запустить и проверить?


#27

Надо загуглить что такое сеты и чем они отличаются от массивов.
Самое очевидное, что в множестве не дублируются объекты и они неотсортированы.
Но надо смотреть как они устроены внутри и под нужную задачу выбирать нужную коллекцию. Если объем данных небольшой, то пофигу вообще - массивы все используют и не парятся.
Но если объем данных большой и надо постоянно сравнивать и сверять объекты на вхождение, то нужно брать множества.
У массивов и множеств разная скорость добавления-удаления и выборки элемента.


#28

Хотел было про сэты написать, но опытный товарищ @haymob всё сказал: самое частое их пременение видел для удаления дублей в остальных коллекция ))


#30

еще одно отличие if от guard состоит в том, что в if отрицательное условие часто выполняется в конце и для этого перебираются все предыдущие варианты, в то время как в guard сразу рассматривается отрицательный вариант и если он отсутствует, то можно работать с данными дальше. Поэтому он и называется guard, т.е., страж или сторож, который пропускает только тех, кто нужен.

И да, на маленьких блоках кода разница практически отсутствует (за исключением области видимости), она становится заметной именно когда используются несколько if.