Обложка канала

Android Broadcast

Качественная выборка Android Dev новостей, тезисы важных новостей и статей, личное мнение

Android Broadcast

7 лет назад
Открыть в
#Kotlin

When to use Kotlin's takeIf() and takeUnless() functions

Стандартная библиотека содержит множество различных утилитных функций, которые делаю код короче и приятнее. Но не всегда так все очевидно и можно легко столкнуться с проблемами - например функции takeIf и takeUnless таят в себе опасность.

Задача этих функций в том чтобы проверить значение и если оно удовлетворяет (или нет в для takeUnless) условию вернуть это значение, в противном случае - null. Например digit.takeIf { it % 2 == 0 }, что является аналогом кода if (it % 2 == 0) digit else null.

На первый взгляд все выглядет хорошо, но надо учитывать порядок выполнения инструкций, так как он разный и может привезти к печальны последствиям. Больше подробностей в статье.