Функции
apply
1) Списки
.getOrElse - функция безопасного доступа по индексу. getOrElse, принимает два аргумента: первый — это запрашиваемый индекс (не в квадратных скобках), второй — это лямбда, которая генерирует значение по умолчанию вместо исключения, если запрашиваемого индекса не существует.
patronList.getOrElse(4) { "Unknown Patron" }
.Map Pair
val goodUserList = userList.map{Pair(it.substringBefore(" "), it.substringAfter(" "))}
Разбивает список на 2 списка в паре до и после пробела
.flatMap (flatten)
val revenueByWeek = listOf( listOf(8, 3, 5, 1, 5), listOf(7, 1, 3, 2, 4) ) val bestTotal = revenueByWeek.flatten()
пройдётся по всем элементам коллекции и склеит их в 1 список
.filter
Проходится по списку. Если условие true, то возвращает список.
Пример1. Возвращает список если содержится буква А:
val listOfEvanNames = listOfNames.filter { it.first() == 'А' }
Пример2. Не возвращает список если хотя бы 1 элемент списка меньше 0:
.filterNot { it.value.any {it < 0 }}
.average
вычисляет среднее значение из списка
.minByOrNull
принимает лямбду, сортируя список по минимальному полученному значению.
data class Person (val name: String, val age: Int) val people = listOf(Person("Alice", 29), Person("Bob", 31)) people.minByOrNull { it.age }
2) Строки
checkNotNull - проверяет значение на null и возвращает его, если оно не равно null, а иначе возбуждает IllegalStateException.
2.1) Проверка на символы
isBlank - проверяет, является ли строка пробелом, пустой ("") или null.
isEmpty - проверяет, является ли строка пустой ("") или null
2.2) Разделители
.split("\n") - разбивает по указанному символу
substringBefore - принимает значение до указанного символа
substringAfter - принимает значение после указанного символа
it.substringBefore("СИМВОЛ")
2.3) Работа с символами в строке
.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() } - делает первый символ заглавным