
Optional
🟢 lvl: jun
ℹ️ Зачем нужны опционалы, когда есть проверка на nil?
Как минимум, опциональность проверяется на этапе компиляции, что снижает количество ошибок в runtime. По своей сути опционал является обычным enum'ом, в котором 2 кейса: .some, .none.
Развернуть (анврапить) опционал можно множествами способами, но остановимся на самых неочевидных:
🟣 map —позволяет преобразовать опционал, если он имеет значение, или ничего не делать, если он пуст.
можно юзать map() для безопасного преобразования без проверки и анврапинга — если бы он был равен нулю, вызов map() ничего бы не сделал.
map вернет преобразованный опциональный тип
🔵 flatMap - делает почти тоже самое, только уберет дополнительное преобразование в опционал, если оно имеется
🟢 lvl: jun
ℹ️ Зачем нужны опционалы, когда есть проверка на nil?
Как минимум, опциональность проверяется на этапе компиляции, что снижает количество ошибок в runtime. По своей сути опционал является обычным enum'ом, в котором 2 кейса: .some, .none.
Развернуть (анврапить) опционал можно множествами способами, но остановимся на самых неочевидных:
🟣 map —позволяет преобразовать опционал, если он имеет значение, или ничего не делать, если он пуст.
можно юзать map() для безопасного преобразования без проверки и анврапинга — если бы он был равен нулю, вызов map() ничего бы не сделал.
map вернет преобразованный опциональный тип
🔵 flatMap - делает почти тоже самое, только уберет дополнительное преобразование в опционал, если оно имеется