ماذا تفعل الكلمة المفتاحية `by` في Kotlin؟ اشرح مع أمثلة
مرحباً بالجميع! بدأت تعلم Kotlin مؤخراً، انتقلت من Java، وواجهت بناء جملة غير مفهوم بالنسبة لي. أجد في كود زملائي الكلمة المفتاحية `by`، لكن لا أستطيع فهم الغرض منها. \n\nعلى سبيل المثال، رأيت هذا الكود:\n\n```kotlin\nclass MyClass {\n var name: String by Delegates.observable("Initial") { prop, old, new ->\n println("$old -> $new")\n }\n}\n```\n\nأو هذا:\n\n```kotlin\nclass Derived(base: Base) : Base by base\n```\n\nأفهم أن هذا مرتبط بالتفويض (delegation)، لكن ليس واضحاً لي كيف يعمل تحت الغطاء. في Java كان لدينا فقط الوراثة والواجهات، ولكن هنا نوع من السحر.\n\nاشرح من فضلك، لِمَ تُستخدم `by`؟ في أي الحالات يجب تطبيقها؟ وكيف تعمل على مستوى byte-code؟ سأكون ممتناً لأمثلة بسيطة لفهم المبتدئ.