Avatar ·

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