Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

تعريف Closure بسيط

جزء من قسم Logic & Flow في رحلة Rust على Coddy — الدرس 60 من 66.

الآن بعد أن فهمت ماهية الـ closures، دعنا نتعلم كيفية تعريفها واستخدامها في الكود الخاص بك. إن أبسط طريقة لإنشاء closure هي تعيينه لمتغير، مما يتيح لك استدعاءه لاحقاً.

إليك كيفية تعريف إغلاق (closure) أساسي لا يأخذ أي معاملات:

let my_closure = || {
    println!("Hello from the closure!");
};

لاحظ الأشرطة الرأسية الفارغة || - يشير هذا إلى أن الإغلاق لا يأخذ أي وسائط. تحتوي الأقواس المتعرجة على الكود الذي يتم تشغيله عند استدعاء الإغلاق.

لاستدعاء الـ closure الخاص بك، يمكنك استخدامه تماماً مثل الدالة عن طريق إضافة أقواس بعد اسم المتغير:

let my_closure = || {
    println!("Hello from the closure!");
};

my_closure(); // هذا يستدعي الـ closure ويطبع الرسالة
challenge icon

التحدي

سهل

ستتلقى مدخلاً واحداً يحتوي على رسالة. قم بإنشاء closure لا يأخذ أي معاملات ويقوم بطباعة هذه الرسالة. قم بتخزين الـ closure في متغير، ثم قم باستدعائه لعرض الرسالة.

المتطلبات:

  • اقرأ رسالة الإدخال وقم بإزالة المسافات البيضاء (trim)
  • أنشئ closure باستخدام صيغة || يقوم بطباعة الرسالة
  • قم بتخزين الـ closure في متغير
  • استدعِ الـ closure لتنفيذه

الإدخال:

  • سطر واحد يحتوي على رسالة (مثلاً، Welcome to Rust!)

المخرجات:

  • الرسالة المطبوعة بواسطة الـ closure

ورقة مرجعية

يتم تعريف الإغلاق (closure) باستخدام الأشرطة العمودية || ويمكن تخزينه في متغير:

let my_closure = || {
    println!("Hello from the closure!");
};

لاستدعاء الإغلاق، استخدم الأقواس بعد اسم المتغير:

my_closure(); // ينفذ الإغلاق

جرّب بنفسك

use std::io;

fn main() {
    // قراءة المدخلات
    let mut message = String::new();
    io::stdin().read_line(&mut message).expect("Failed to read line");
    let message = message.trim();
    
    // TODO: قم بإنشاء closure يطبع الرسالة وقم بتخزينه في متغير
    
    
    // TODO: قم باستدعاء الـ closure لطباعة الرسالة
    
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow