O que significa o operador `::` em Kotlin? Explique com exemplos
Olá a todos! Acabei de começar a estudar Kotlin para desenvolvimento Android e me deparei com uma sintaxe estranha com dois pontos duplos `::`. Encontro isso em toda parte: em lambdas, ao trabalhar com reflexão, no Jetpack Compose.
Por exemplo, vi este código:
```kotlin
val onClick: (View) -> Unit = ::handleClick
```
Ou este:
```kotlin
class MyFragment : Fragment() {
private val binding by viewModels()
// ...
val items = listOf("A", "B", "C")
val filtered = items.filter(String::isNotEmpty)
}
```
E também no Compose:
```kotlin
Button(onClick = ::onButtonClick) { Text("Click") }
```
Eu entendo que isso está relacionado de alguma forma a referências de funções ou propriedades, mas não consigo entender a diferença entre `::handleClick` e simplesmente `{ handleClick(it) }`. Para que serve este operador? Quando usá-lo, e qu