Os casos de uso de RemoveAll e removeif

Yogesh:

Eu apenas comecei com Kotlin e ao experimentar, eu encontrei este:

fun main(args: Array<String>) {
    val list: MutableList<Int> = mutableListOf(1, 2, 3, 4, 5)
    list.removeAll { x -> x in 1..3 }

E

    list.removeIf { x -> x in 1..3 }
}

ambos resultar em mesma saída

4
5

Apesar de eu entender que removeAll é Kotlin e removeIf é Java, mas eu não entendo por que removeAll está lá quando removeIf já estava lá? E para o fato de que nós poderíamos usar removeIf em Kotlin sem qualquer aborrecimento. Ou há qualquer caso de uso que pode precisar de um sobre o outro?

Damián Rafael Lattenero:

Aqueles são muito, muito diferentes funções, mas em Kotlin o método está sobrecarregado, ou seja, ele tem dois tipos diferentes de argumentos para a função.

Se você ler o doc, você pode ver que você pode usar esta função, dando uma coleção:

fun <T> MutableCollection<out T>.removeAll(
    elements: Collection<T>
): Boolean (source)

Ou dar uma função para filtrar:

fun <T> MutableIterable<T>.removeAll(
    predicate: (T) -> Boolean
): Boolean (source)

Assim, o segundo é como a versão Java do removeIf, o primeiro não é.

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=137674&siteId=1
Recomendado
Clasificación