Как добиться того же, но с меньшим количеством кода (или используя некоторые из функций расширения Kotlin) - PullRequest
1 голос
/ 05 августа 2020

У меня есть этот список. Назовем это вехами. Итак, список выглядит так.

val milestones = List<Milestone>()

И класс Milestone выглядит так

data class Milestone {
    val isCompleted: Boolean
}

Теперь я должен проверить здесь, как только я получу список вех, которые мне нужно знать, все ли вехи выполнены. По сути, я хочу написать функцию, которая принимает этот список этапов и возвращает true, если все этапы завершены, или false, если нет.

Я написал то же самое

fun areMilestonesCompleted(milestones: List<Milestone>) {
    var completed = true

    for (milestone in milestones) {
        if (!milestone.isCompleted) {
            completed = false
            break
        }
    }
    return completed
}

Это работает, но я почти уверен, что в Kotlin будет какая-то предварительно созданная функция расширения, которая может достичь того же с гораздо меньшим кодом. Так что ищу здесь хороший совет.

1 Ответ

4 голосов
/ 05 августа 2020
fun areMilestonesCompleted(milestones: List<Milestone>) = milestones.all { it.isCompleted }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...