Swift:
Вывод отладочной информации
Как:
В Swift у вас есть друг в лице функции print()
. Легко использовать, она позволяет вам видеть, что происходит в вашем коде.
var greeting = "Hello, playground"
print(greeting)
// Вывод: Hello, playground
let numbers = [1, 2, 3, 4, 5]
for number in numbers {
print(number)
}
// Вывод:
// 1
// 2
// 3
// 4
// 5
Но это ещё не всё! Нужна подробная отладочная информация? debugPrint()
к вашим услугам:
debugPrint(greeting)
// Вывод: "Hello, playground"
Заметили эти кавычки? debugPrint()
выдаёт подробности с дополнительной информацией о типах данных и структуре.
Погружение
В старые добрые времена Objective-C мы использовали NSLog
для вывода информации. Swift сделал всё проще — print()
это ваш хлеб насущный для стандартного вывода, в то время как debugPrint()
это ароматизированное масло для подробных представлений.
Интересный факт: стандартный вывод в Swift — это не только текст, это может быть любой тип, соответствующий CustomStringConvertible
или CustomDebugStringConvertible
. Эти протоколы позволяют настраивать внешний вид ваших объектов при их выводе на печать.
Под капотом print()
и debugPrint()
используют String(describing:)
и String(reflecting:)
для преобразования ваших объектов в строки. По сути эти функции используют зеркало, чтобы делать селфи ваших данных.
Альтернативы? У вас есть os_log
и NSLog
, но они больше подходят для логирования уровня продакшн, а не для быстрой и грязной отладки, с которой мы тут занимаемся.
Смотрите также
- Справочник API Swift для функций печати: Библиотека стандартов Swift: print(_:separator:terminator:)
- Более глубокий взгляд на логирование в Swift, рассмотрение GDPR и конфиденциальности: Единое логирование и отслеживание активности
- Интерполяция строк в Swift и настраиваемость для отладочных описаний: CustomStringConvertible и CustomDebugStringConvertible