Kotlin में `::` ऑपरेटर का क्या अर्थ है? उदाहरणों के साथ समझाएं
सभी को नमस्कार! मैंने अभी Android डेवलपमेंट के लिए Kotlin सीखना शुरू किया है और दो कोलन `::` वाले अजीब सिंटैक्स पर ठोकर खाई हूं। मैं इसे हर जगह देखता हूं: lambdas में, reflection के साथ काम करते समय, Jetpack Compose में।
उदाहरण के लिए, मैंने ऐसा कोड देखा:
```kotlin
val onClick: (View) -> Unit = ::handleClick
```
या यह:
```kotlin
class MyFragment : Fragment() {
private val binding by viewModels()
// ...
val items = listOf("A", "B", "C")
val filtered = items.filter(String::isNotEmpty)
}
```
और Compose में भी:
```kotlin
Button(onClick = ::onButtonClick) { Text("Click") }
```
मैं समझता हूं कि यह किसी तरह functions या properties के references से संबंधित है, लेकिन मैं `::handleClick` और सिर्फ `{ handleClick(it) }` के बीच अंतर नहीं समझ पा रहा हूं। इस ऑपरेटर की क्या आवश्यकता है? इसका उपयोग कब करें, और कब न करें?