التغيير في المكان باستخدام inout
اسمح للدالة بتغيير قيمة المستدعي
التغيير في المكان باستخدام 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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- استعارة الوسيطات للقراءة فقط
- التغيير في المكان باستخدام inout
- تولّي الملكية باستخدام owned
- عامل النقل