تخطَّ إلى المحتوى

🦀 شرح Rust

الإغلاقات والمكرّرات

الدرس 20 من 25· ⏱ 1 دقائق قراءة

الإغلاقات (Closures)

دوال مجهولة تلتقط متغيّرات محيطها:

let add = |a, b| a + b;
println!("{}", add(2, 3));   // 5

let factor = 10;
let multiply = |x| x * factor;   // يلتقط factor
println!("{}", multiply(5));     // 50

المكرّرات (Iterators)

let nums = vec![1, 2, 3, 4, 5];

let doubled: Vec<i32> = nums.iter()
    .map(|x| x * 2)
    .collect();              // [2,4,6,8,10]

let evens: Vec<&i32> = nums.iter()
    .filter(|x| *x % 2 == 0)
    .collect();              // [2,4]

let sum: i32 = nums.iter().sum();

دوال شائعة

map، filter، collect، sum، count، find، fold.

💡 المكرّرات في Rust "كسولة" وفعّالة جدًّا — لا تُنفَّذ حتى تستهلكها (مثل collect).

🎯 التالي: الوحدات والحزم (Crates).

هل كان هذا الدرس مفيدًا؟