# Nova Função 'Count(where:)' no Swift 6 (High-Order Function)

%[https://youtu.be/otdj_INMcyc] 

## O que são as High Order Function

Uma **higher order function** é uma função que recebe uma outra como argumento, ou uma função que retorna outra função.

Depois dessa breve introdução do que é uma High Order Function, vamos imaginar que temos um array de **Ints** e que precisamos pegar o numero de elementos dentro dele que são múltiplos de 2.

### Antes do Swift 6

Poderíamos usar diversas formas de pegar **count** de elementos, usando **for** ou **foreach** mas nesse caso estou trazendo como normalmente eu fazia usando o **filter.** Perceba que filter retorna um array com os elemento que retornam true para condição e depois disso pegamos o nosso count.

```swift
let array = [1,2,3,4,5,6,7,8,9,10]
let count = array.filter {
    $0.isMultiple(of: 2)
}.count
```

### Depois do Swift 6

```swift
let array = [1,2,3,4,5,6,7,8,9,10]
let count = array.count {
    $0.isMultiple(of: 2)
}
```

Perceba que agora no nosso **count** podemos passar um argumento igual no **filter** só que trazendo direto o **count** do array da condição.

**Não é nada que vai mudar a nossa vida como desenvolvedor iOS drasticamente mas acho legal quando novas versões do Swift trazem facilidades pro nosso dia a dia e ajudam a remover a verbosidade do código.**
