Kotlin में "रिसीवर" (receiver) क्या है और इसकी आवश्यकता क्यों है?
नमस्ते सहकर्मियों! मैंने Java के बाद Kotlin सीखना शुरू किया है और "receiver" (रिसीवर/प्राप्तकर्ता) शब्द पर ध्यान गया। मैं डॉक्यूमेंटेशन पढ़ रहा हूँ और `apply`, `let`, `run`, `with` जैसी चीज़ें देख रहा हूँ — और हर जगह रिसीवर के बारे में लिखा है। लेकिन मैं पूरी तरह से समझ नहीं पा रहा हूँ कि यह क्या है और यह कैसे काम करता है।
यहाँ एक सरल उदाहरण है। मैं ऐसा कोड लिखता हूँ:
```kotlin
data class Person(var name: String = "", var age: Int = 0)
fun main() {
val person = Person().apply {
name = "Alice" // यहाँ मैं सीधे name को एक्सेस कर रहा हूँ, person.name नहीं
age = 30
}
println(person)
}
```
मैं समझता हूँ कि `apply` ब्लॉक के अंदर मैं `name = "Alice"` लिख सकता हूँ, न कि `person.name = "Alice"`। लेकिन यह कैसे काम करता है? "रिसीवर के साथ फंक्शन" का क्या मतलब है? क्या यह कोई जादुई क्लोजर है? या यह उसी तरह काम करता है जैसे...