Avatar ·

ماذا تفعل الكلمة المفتاحية `by` في Kotlin وكيف تستخدمها للتفويض؟

مرحبًا! بدأت تعلم Kotlin بعد Java وأواجه باستمرار الكلمة المفتاحية `by`، لكن لا أستطيع فهم جوهرها. أراها في سياقات مختلفة: في تعريف الفئات، في الخصائص، في تركيبات `lazy`. على سبيل المثال، رأيت هذا الكود: ```kotlin class MyClass : BaseInterface by SomeImplementation() ``` أو: ```kotlin val myValue: String by lazy { "Hello" } ``` ماذا تفعل `by`؟ هل هي عامل (operator) ما؟ لا يوجد شيء مشابه في Java. حاولت قراءة التوثيق لكنه معقد جدًا للمبتدئين. هل يمكنك شرح كيفية عمل `by` بكلمات بسيطة؟ متى يجب استخدامها، ومتى من الأفضل تجنبها؟ ولماذا يُسمى هذا 'تفويض' (delegation)؟ سأكون ممتنًا لأمثلة من الحياة الواقعية لأفهم كيف أطبق ذلك في مشاريعي. شكرًا مقدمًا!