Kotlin में मान द्वारा या संदर्भ द्वारा पास करना: मैं फंक्शन में संख्या क्यों नहीं बदल सकता?
सभी को नमस्ते! मैंने अभी-अभी Java के बाद Kotlin सीखना शुरू किया है और फंक्शन में आर्गुमेंट पास करने के तंत्र में उलझ गया हूँ। कई लेख पढ़े, लेकिन पूरी तरह से समझ नहीं आया।
यहाँ एक सरल उदाहरण है। मैं एक फंक्शन लिख रहा हूँ जो पास किए गए नंबर को 10 से बढ़ाना चाहिए:
```kotlin
fun increaseValue(x: Int) {
x = x + 10 // कम्पाइल एरर: Val cannot be reassigned
}
```
कम्पाइलर शिकायत करता है कि x एक val है। मैं समझता हूँ कि Kotlin में पैरामीटर अपरिवर्तनीय रेफरेंस (val) होते हैं। लेकिन फिर म्यूटेबल ऑब्जेक्ट्स के लिए पासिंग कैसे काम करती है? यहाँ एक और उदाहरण है:
```kotlin
data class Person(var name: String)
fun changeName(person: Person) {
person.name = "New Name" // यह काम करता है
}
fun main() {
val p = Person("Old")
changeName(p)
println(p.name) // "New Name" प्रिंट करेगा
}
```
यहाँ