Язык Swift часть 8. Старый добрый if/else
Операторы контроля потока в Swift очень похожи в написании их синтаксиса на языки из семейства C. Но похожий синтаксис не означает идентичный. Давайте разберемся в чем заключаются ключевые отличия при написании if на языке программирования Swift.
Swift отличается свежим и прозрачным подходом в написании кода. Код должен быть всегда очевиден и понятен не только разработчику, который его написал, но и другим разработчикам, которым предстоит работать с этим кодом.
Рассмотрим самый базовый и фундаментальный оператор условия в любом языке программирования, оператор if. Или, правильнее сказать, if/else
.
Если вы уже изучали какой-либо другой язык программирования, просто попробуйте написать if
, используя знакомый вам синтаксис.
Полученный код будет выглядеть примерно так:
// Типичное условие if
var points = 10
if (points > 5)
print("Больше чем пять");
else
print("Не больше пяти");
Данный код вполне соответствовал бы большинству языков программирования. Но код, который напишет типичный Swift-программист будет выглядеть чуточку иначе. Существуют не большие нюансы в Swift подходе и о них необходимо упомянуть. Давайте сравним:
// Swift стайл if условие
var points = 10
if points > 5 {
print("Больше чем пять")
} else {
print("Не больше пяти")
}
- Круглые скобочки для условия писать не нужно;
;
тоже убираем;- Круглые скобочки
{ }
- необходимое условие для написания условия.
Подход в написании программ на языке Swift предполагает, что мы должны держать код максимально простым и чистым. Все что можно убрать, и это не отразится на работе программы - нужно убирать.
В первом пункте мы убираем скобочки из условия. Если мы их оставим, программа так же успешно выполнится. Но в данном случае они не нужно. Скобочками следует ограждать только сложные условия, в которых много составных операторов, тогда это действительно необходимо для читабельности кода.
Во втором пункте мы убираем точку с запятой. Swift поддерживает точку с запятой в программах, и оставить ее ошибкой не будет. Но мы должны всегда следить за простотой и читабельностью своего кода. Ставьте ;
только тогда, когда это действительно необходимо. Например при написании нескольких выражений в одной строчке, тогда их нужно разделить ;
.
А вот третий пункт является жизненно важным. Каждый логический элемент в языке Swift должен начинаться с {
и заканчиваться }
. Без этого код не скомпилируется.
Для многих языков программирования данный код будет полностью рабочим:
// С++
if (points > 5)
printf("Больше чем пять");
Но только не для Swift. if должен начинаться с {
и заканчиваться }
.
// Swift
if points > 5 {
print("Больше чем пять")
}
И это главное условие. Наличие круглых скобочек делает код более безопасным.
Идем дальше.
Условие в Swift должно соответствовать типу Bool. Оно должно возвращать true или false. Это может показаться очевидным. Однако в некоторых языках программирования проверка условия происходит при сравнении с единицей или нулем. Swift это так не работает.
Рассмотрим пару примеров:
// Пример 1
if counter > 10 000 {
print("True")
} else {
print("False")
}
// Пример 2
if cityName == "Moscow" { ... }
// Пример 3
if someOptional != nil { ... }
// Пример 4
let userLoggedIn = false
let perkEnabled = true
// Тут не нужно спрашивать условие. По умолчанию идет сравнение с true. Если userLoggedIn эквивалентно true то...
if userLoggedIn { ... }
if perkEnabled { ... }
Когда мы пишем условие мы используем все основные операторы сравнения:
if a == b { ... }
if a != b { ... }
if a > b { ... }
if a < b { ... }
if a >= b { ... }
if a <= b { ... }
Для работы с несколькими условиями используются логические И &&
и логическое ИЛИ ||
// Логическое И
if a == b && c != d { ... }
// Логическое ИЛИ
if a < b || a > c { ... }
При использовании сложных выражений ограждаем их скобочками:
if ((score >= highScore) && (bonus == 0)) || ((score * bonus) - penalty) >= highScore { ... }