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"`। लेकिन यह कैसे काम करता है? "रिसीवर के साथ function" का क्या मतलब है? क्या यह कोई जादुई closure है? या यह उस तरह काम करता है जैसे...