Avatar ·

¿Qué significa el operador `::` en Kotlin? Explique con ejemplos

¡Hola a todos! Acabo de empezar a aprender Kotlin para desarrollo Android y me encontré con una sintaxis extraña con dos puntos `::`. Lo veo por todas partes: en lambdas, al trabajar con reflexión, en Jetpack Compose. Por ejemplo, he visto este código: ```kotlin val onClick: (View) -> Unit = ::handleClick ``` O esto: ```kotlin class MyFragment : Fragment() { private val binding by viewModels() // ... val items = listOf("A", "B", "C") val filtered = items.filter(String::isNotEmpty) } ``` Y también en Compose: ```kotlin Button(onClick = ::onButtonClick) { Text("Click") } ``` Entiendo que esto tiene que ver con referencias a funciones o propiedades, pero no logro captar la diferencia entre `::handleClick` y simplemente `{ handleClick(it) }`. ¿Para qué sirve este operador? ¿Cuándo usarlo y cuándo es mejor escribir una lambda? Explíquenme, por favor, con ejemplos simples para principiantes. Me interesa especialmente: 1. La diferencia entre una referencia a un método de clase y una referencia a una función de nivel superior. 2. Cómo se usa