Ce face Iterable.any
Cele trei funcții răspund cu true sau false la o întrebare despre toată colecția. any { ... } este true dacă cel puțin un element se potrivește, all { ... } dacă toate se potrivesc, none { ... } dacă niciunul nu se potrivește.
Se opresc cât mai devreme: any la primul element potrivit, all la primul nepotrivit. Fără condiție, any() înseamnă „colecția are elemente” și none() înseamnă „colecția este goală”.
Pe o colecție goală: any dă false, none dă true, iar all dă true (nu există niciun element care să nu îndeplinească condiția).
Parametri
| Parametru | Descriere |
|---|---|
conditie |
Funcția verificată pentru elemente (opțională la any și none). |
Ce returnează
Boolean.
Exemple
Exemplul 1: Verificări pe note
Trei întrebări despre aceleași note.
fun main() {
val note = listOf(8, 10, 5, 9)
println("Are vreun 10? ${note.any { it == 10 }}")
println("Toate de trecere? ${note.all { it >= 5 }}")
println("Niciun 4? ${note.none { it < 5 }}")
println("Are note? ${note.any()}")
}
Rezultat
Are vreun 10? true
Toate de trecere? true
Niciun 4? true
Are note? true
Exemplul 2: Validarea unei parole
Parola trebuie să aibă cel puțin o cifră, cel puțin o literă mare și niciun spațiu.
fun eValida(parola: String): Boolean {
val c = parola.toList()
return parola.length >= 8 && c.any { it.isDigit() } && c.any { it.isUpperCase() } && c.none { it == ' ' }
}
fun main() {
for (p in listOf("parola", "Parola2026", "Parola 2026", "PAROLA")) {
println("$p -> ${eValida(p)}")
}
}
Rezultat
parola -> false
Parola2026 -> true
Parola 2026 -> false
PAROLA -> false
Exemplul 3: Colecția goală
Rezultatul lui all pe o listă goală poate surprinde: este true.
fun main() {
val goala = emptyList<Int>()
println("any: ${goala.any { it > 0 }}")
println("all: ${goala.all { it > 0 }}")
println("none: ${goala.none { it > 0 }}")
}
Rezultat
any: false
all: true
none: true
Greșeli frecvente
- Folosești
allca să verifici „toate elementele sunt bune” fără să verifici și că lista nu este goală. Pentru o listă goală,allîntoarcetrue. - Scrii
filter { ... }.isNotEmpty()saucount { ... } > 0:any { ... }este mai scurt și se oprește la primul element găsit.
Comenzi înrudite
Iterable.count: Numără elementele colecției sau doar pe cele care îndeplinesc o condiție.Iterable.find: Întoarce primul element care îndeplinește condiția sau null dacă nu există niciunul.Iterable.contains: contains (operatorul in) verifică dacă un element există; indexOf dă poziția primei apariții sau -1.Collection.isEmpty: isEmpty/isNotEmpty verifică dacă o colecție are elemente; orEmpty transformă null în colecție goală; ifEmpty dă o alternativă.