كيفية استنساخ كائن في Kotlin؟ مشكلة مع القابلية للتغيير والمراجع
مرحباً بالجميع! لقد بدأت للتو في تعلم Kotlin وواجهت مشكلة عند استنساخ الكائنات. في Java كنت أستخدم طريقة `clone()` من واجهة `Cloneable`، ولكن في Kotlin يبدو أن كل شيء يعمل بشكل مختلف.\n\nلدي فئة بيانات بسيطة `User`:\n\n```kotlin\ndata class User(val name: String, var age: Int, val hobbies: MutableList)\n```\n\nأقوم بإنشاء كائن وأريد عمل نسخة كاملة منه، بحيث لا تؤثر التغييرات في النسخة على الأصل. ولكن عندما أقوم ببساطة بتعيين كائن إلى آخر، فإن ذلك ينشئ مرجعاً جديداً وليس نسخة:\n\n```kotlin\nval user1 = User("Alice", 25, mutableListOf("reading", "swimming"))\nval user2 = user1 // هذه ليست نسخة، بل مرجع!\n\nuser2.age = 30\nprintln(user1.age) // يطبع 30، بينما يجب أن يكون 25! التغييرات أثرت على الأصل.\n```\n\nلقد جربت استخدام `copy()`