¿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
No answers yet.
Inicia sesión para dejar una respuesta
Blogs
Cómo escribir una API REST en C++ en 30 minutos: guía paso a paso
Java o Python para backend: comparación objetiva 2025
Revisión de código en Java: qué buscan los seniors y cómo no fracasar en la code review
Cliente HTTP en JavaScript: técnicas avanzadas de solicitudes en Node.js