Меньше печатайте, меньше читайте, больше производите | Обновление от 14 мая 2017 г.
Итак, вы работаете со Swift пару месяцев. Теперь вы хотите стать лучшим разработчиком Swift? СУХОЙ, ПОЦЕЛУЙ, а НЕ ВЛАЖНЫЙ? У меня тут и там есть золотые самородки.
Извините за форматирование, я постарался сделать как можно меньше строк для краткости. Не стесняйтесь копировать и вставлять в Playground, чтобы проверить, все ли работает. 👊 Если нет, прокомментируйте ниже. Я исправлю их как можно скорее.
Я также встроил уроки YouTube под каждую часть для объяснения.
Я слишком много говорил. Приступим.
1. Продление
Пример) Возвести число в квадрат
// Okay Version func square(x: Int) -> Int { return x * x } var squaredOFFive = square(x: 5) square(x:squaredOFFive) // 625
Бесполезная переменная была создана как двойной квадрат 5 - нам не нужно получать удовольствие от набора текста.
// Better Version extension Int { var squared: Int { return self * self } } 5.squared // 25 5.squared.squared // 625
2. Дженерики
Пример) Распечатать все элементы в массиве
// Bad Code var stringArray = ["Bob", "Bobby", "SangJoon"] var intArray = [1, 3, 4, 5, 6] var doubleArray = [1.0, 2.0, 3.0] func printStringArray(a: [String]) { for s in a { print(s) } } func printIntArray(a: [Int]) { for i in a { print(i) } } func printDoubleArray(a: [Double]) {for d in a { print(d) } }
Слишком много бесполезных функций. Давайте создадим только один.
// Awesome Code func printElementFromArray<T>(a: [T]) { for element in a { print(element) } }
3. Цикл For против цикла while
Пример. Напечатайте «Счетчик» 5 раз.
// Okay Code var i = 0 while 5 > i { print("Count") i += 1 }
Вы задали переменную "i", чтобы убедиться, что ваш компьютер не ломается, печатая ограниченные числа.
Слушайте, больше переменных → больше запоминания → больше головной боли → больше ошибок → больше жизненных проблем.
Вспомните эффект бабочки.
// Better Code for _ in 1...5 { print("Count") }
«Великолепно» - Боб
4. Дополнительная распаковка
Пример) Gaurd let vs if let
Давайте сделаем программу для приветствия нового пользователя.
var myUsername: Double? var myPassword: Double? // Hideous Code func userLogIn() { if let username = myUsername { if let password = myPassword { print("Welcome, \(username)"!) } } }
Вы видите пирамиду гибели? Это неприятный вложенный код. Никогда. Уничтожьте плохое, принесите хорошее.
// Pretty Code func userLogIn() { guard let username = myUsername, let password = myPassword else { return } print("Welcome, \(username)!") }
Разница огромная. Если имя пользователя или пароль имеют нулевое значение, красивый код преждевременно выйдет из функции, вызвав «return». В противном случае он напечатает приветственное сообщение. Нет пирамиды. 🤘
Контент был перенесен с Medium на личную платформу. Остальную часть содержания шести других советов по Swift вы можете прочитать здесь