Que signifie l'opérateur `::` en Kotlin ? Expliquez avec des exemples
Bonjour à tous ! Je viens de commencer à apprendre Kotlin pour le développement Android et je suis tombé sur une syntaxe étrange avec deux deux-points `::`. Je la rencontre partout : dans les lambdas, en travaillant avec la réflexion, dans Jetpack Compose. \n\nPar exemple, j'ai vu ce code :\n```kotlin\nval onClick: (View) -> Unit = ::handleClick\n```\nOu encore :\n```kotlin\nclass MyFragment : Fragment() {\n private val binding by viewModels()\n // ...\n val items = listOf("A", "B", "C")\n val filtered = items.filter(String::isNotEmpty)\n}\n```\nEt aussi dans Compose :\n```kotlin\nButton(onClick = ::onButtonClick) { Text("Click") }\n```\n\nJe comprends que cela a un rapport avec les références à des fonctions ou des propriétés, mais je n'arrive pas à saisir la différence entre `::handleClick` et simplement `{ handleClick(it) }`. Pourquoi cet opérateur est-il nécessaire ? Quand l'utiliser, et quand est-il préférable d'écrire une lambda ? Expliquez-moi, s'il vous plaît, avec des exemples simples pour un débutant. \n\nCe qui m'intéresse particulièrement :\n1. La différence entre une référence à une méthode de classe et une référence à une fonction de niveau supérieur.\n2. Comment utiliser