Mojo Academy · درس

التغيير في المكان باستخدام inout

اسمح للدالة بتغيير قيمة المستدعي

الدرس 2 من 413 خطوة

التغيير في المكان باستخدام inout درس مجاني في Mojo Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Mojo Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Mojo Academy 4 دروس في المجموع.

أحيانًا يجب أن تغيّرها

تسمح لك الاستعارة بالقراءة فقط. لكن تحتاج الدالة أحيانًا إلى تعديل قيمة المستدعي فعلًا، مثل زيادة عدّاد. ✏️

تعرّف إلى inout

يمنح اصطلاح inout الدالة صلاحية التعديل. وتنعكس التغييرات التي تجريها بداخلها على متغير المستدعي.

داخل وخارج

الاسم يوضح كل شيء: تنتقل القيمة إلى الداخل، وتُجرى عليها التغييرات، ثم تعود القيمة المحدّثة إلى المستدعي. ولا تُعاد أي نسخة.

تحديد مَعلمة

تكتب inout قبل اسم المَعلمة. عندها تُحدّث عمليات الإسناد داخل الدالة المتغير الأصلي مباشرةً.

fn increment(inout n: Int):
    n += 1

استدعاءها

مرّر متغيرًا ولاحظ تغيّره بعد الاستدعاء. فقد عدّلت الدالة قيمة المستدعي في مكانها، من دون الحاجة إلى قيمة مُعادة.

var count = 5
increment(count)
print(count)  # 6

يجب أن تكون قابلة للتغيير

يجب أن تكون الوسيطة التي تمرّرها إلى مَعلمة inout عبارة عن var قابل للتغيير. ولا يمكنك تمرير قيمة حرفية ثابتة أو قيمة مستعارة إليها.

حصرية أثناء الاستعارة

أثناء احتفاظ الدالة بمرجع inout، لا يجوز لأي شيء آخر الوصول إلى تلك القيمة. وتمنع قاعدة الحصرية هذه التعديلات المتعارضة.

لا نسخ مخفية

مثل الاستعارة، يعمل inout بالمرجع، ولذلك لا توجد نسخة كاملة. تحصل على التغيير من دون تكلفة التكرار.

المستدعي لا يزال مالكها

مع inout يحتفظ المستدعي بالملكية. تستعير الدالة القيمة بشكل قابل للتغيير طوال مدة الاستدعاء فقط، ثم تعيد التحكم بها.

متى تختار inout

استخدم inout عندما تكون مهمة الدالة بأكملها هي تحديث قيمة سيواصل المستدعي استخدامها، مثل تكبير مخزن مؤقت أو إعادة ضبط حقل.

القراءة مقابل التغيير جنبًا إلى جنب

حتى الآن: تعني borrowed القراءة فقط، بينما يعني inout القراءة والكتابة. ويخبر اختيارك الصحيح القارئ بدقة بما تفعله الدالة.

تحقق سريع

لنتحقق مما يتيحه inout.

مراجعة

يتيح inout للدالة تغيير قيمة المستدعي في مكانها، بالمرجع ومن دون نسخة. ويظل المستدعي مالكًا لها طوال الوقت. 🎯

البدء مجانًا

تعلم Mojo مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
30
الدروس
120

الأسئلة الشائعة

هل درس «التغيير في المكان باستخدام inout» مجاني؟

نعم — نص درس «التغيير في المكان باستخدام inout» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Mojo Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Mojo Academy 4 دروس في المجموع.

ماذا ستتعلم في «التغيير في المكان باستخدام inout»؟

اسمح للدالة بتغيير قيمة المستدعي تتمرن على Mojo Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Mojo Academy؟

لا تُشترط خبرة سابقة. Mojo Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «التغيير في المكان باستخدام inout»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Mojo Academy هذا؟

نعم. كل درس في Mojo Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. استعارة الوسيطات للقراءة فقط
  2. التغيير في المكان باستخدام inout
  3. تولّي الملكية باستخدام owned
  4. عامل النقل
← العودة إلى Mojo Academy