Логические методы и переключение значений
Используйте toggle() и методы, возвращающие логическое значение.
«Логические методы и переключение значений» — бесплатный урок Swift Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 4 уроков всего.
У логического типа тоже есть методы
В Swift даже Bool — это тип с полезными методами. Самый распространённый из них — toggle(): он меняет значение на противоположное непосредственно.
var isOn = false
isOn.toggle()
print(isOn)toggle() и ручное инвертирование
До появления toggle() программисты писали isOn = !isOn. Версия с методом короче и избавляет от повторения имени переменной.
var darkMode = true
darkMode.toggle()
print(darkMode)
darkMode.toggle()
print(darkMode)Для toggle() требуется изменяемая переменная
Поскольку toggle() изменяет значение, логическое значение должно храниться в var. Вызов метода для let приводит к ошибке компиляции.
var flagged = false
for _ in 1...3 {
flagged.toggle()
}
print(flagged)Методы, возвращающие логическое значение
Многие типы предоставляют элементы, возвращающие логическое значение. Свойство isEmpty у строки сообщает, нет ли в ней символов.
let name = ""
print(name.isEmpty)
let city = "Paris"
print(city.isEmpty)isEmpty у коллекций
У массивов и словарей тоже есть isEmpty. Это понятнее и быстрее, чем сравнивать count с нулём.
let scores: [Int] = []
print(scores.isEmpty)
let items = [1, 2, 3]
print(items.isEmpty)Метод contains возвращает логическое значение
Метод contains проверяет, содержит ли коллекция заданный элемент, и возвращает true или false.
let fruits = ["apple", "pear", "kiwi"]
print(fruits.contains("pear"))
print(fruits.contains("mango"))Префикс и суффикс строки
Строки предоставляют методы hasPrefix и hasSuffix, оба возвращают логическое значение. Они удобны для простых проверок текста.
let file = "report.pdf"
print(file.hasSuffix(".pdf"))
print(file.hasPrefix("report"))Использование логических методов в условии
Поскольку эти методы возвращают логическое значение, их можно напрямую использовать в условии if.
let input = ""
if input.isEmpty {
print("Please enter a value")
} else {
print("Thanks")
}Отрицание результата логического метода
Сочетайте ! с логическим методом, чтобы выразить отрицание. Например: «если список не пуст».
let cart = ["book"]
if !cart.isEmpty {
print("Ready to checkout")
}allSatisfy
Метод allSatisfy возвращает true только в том случае, если каждый элемент проходит заданную вами проверку.
let ages = [20, 34, 19, 41]
let allAdults = ages.allSatisfy { $0 >= 18 }
print(allAdults)Объединение логических результатов
Несколько вызовов, возвращающих логическое значение, можно объединить логическими операторами в одно решение.
let email = "user@example.com"
let valid = !email.isEmpty && email.contains("@")
print(valid)Быстрая проверка
Проверьте методы, возвращающие логическое значение.
Итоги: логические методы и инвертирование
Используйте toggle(), чтобы изменить значение переменной логического типа на противоположное непосредственно, а также применяйте элементы, возвращающие логическое значение, например isEmpty, contains, hasPrefix и allSatisfy, для создания выразительных условий.
var visible = false
visible.toggle()
let tags = ["new"]
print(visible && !tags.isEmpty)Часто задаваемые вопросы
Урок «Логические методы и переключение значений» бесплатный?
Да — полный текст урока «Логические методы и переключение значений» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 4 уроков всего.
Чему я научусь в уроке «Логические методы и переключение значений»?
Используйте toggle() и методы, возвращающие логическое значение. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Swift Academy?
Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Логические методы и переключение значений»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Swift Academy?
Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Значения Bool и выражения
- Тернарный условный оператор
- Как избегать вложенных тернарных операторов
- Логические методы и переключение значений