المقاطع
طرق عرض مستعارة
المقاطع درس مجاني في Learn Rust Coding على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn Rust Coding، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn Rust Coding 4 دروس في المجموع.
ما هي الشريحة؟
الشريحة عرض مستعار لجزء متصل من مجموعة. وهي لا تمتلك البيانات — بل تشير إلى بيانات موجودة.
تُكتب الشرائح باستخدام نطاق داخل الأقواس.
fn main() {
let arr = [1, 2, 3, 4, 5];
let part = &arr[1..4];
println!("{:?}", part);
}صياغة نطاق الشريحة
تحدد النطاقات فهرس البداية والنهاية. وتكون النهاية غير شاملة.
&v[1..4]— الفهارس 1 و2 و3.&v[..3]— من البداية حتى 3.&v[2..]— من 2 حتى النهاية.
fn main() {
let v = vec![10, 20, 30, 40];
println!("{:?}", &v[..2]);
println!("{:?}", &v[2..]);
}شرائح السلاسل النصية
الشريحة النصية &str عرض لجزء من String. وتُقاس نطاقات الفهرسة بمواضع البايتات.
fn main() {
let s = String::from("hello world");
let hello = &s[0..5];
let world = &s[6..11];
println!("{} {}", hello, world);
}شرائح المجموعة بأكملها
استخدم &v[..] لتقسيم المجموعة بأكملها إلى شريحة. هذه هي طريقة استعارة Vec في صورة شريحة.
fn main() {
let v = vec![1, 2, 3];
let whole = &v[..];
println!("{:?}", whole);
}الشرائح كمعاملات
تقبل الدوال التي تأخذ &[T] كلًا من المصفوفات والمتجهات. وهذا يجعلها مرنة.
fn sum(items: &[i32]) -> i32 {
let mut total = 0;
for x in items {
total += x;
}
total
}
fn main() {
let v = vec![1, 2, 3];
let a = [4, 5, 6];
println!("{} {}", sum(&v), sum(&a));
}الشرائح تستعير ولا تمتلك
لأن الشريحة تستعير البيانات، يجب أن تظل المجموعة الأصلية حية أثناء استخدام الشريحة. ويفرض المصرّف ذلك.
fn main() {
let v = vec![100, 200, 300];
let s = &v[0..2];
println!("slice {:?}, original {:?}", s, v);
}طول الشريحة
للشرائح، مثل المجموعات الأخرى، طريقة len() التي تعطي عدد العناصر التي تغطيها.
fn main() {
let v = vec![5, 6, 7, 8, 9];
let middle = &v[1..4];
println!("length {}", middle.len());
}first وlast
توفر الشرائح first() وlast()، وتعيدان قيمًا من نوع Options لكي تتم معالجة الشرائح الفارغة بأمان.
fn main() {
let data = [10, 20, 30];
let s = &data[..];
println!("{:?} {:?}", s.first(), s.last());
}التكرار على شريحة
يمكنك التكرار على شريحة كما تفعل مع أي مجموعة.
fn main() {
let v = vec![1, 2, 3, 4];
for x in &v[1..3] {
println!("{}", x);
}
}دالة الكلمة الأولى
من الاستخدامات الشائعة للشرائح: إرجاع شريحة تشير إلى نص موجود، مثل الكلمة الأولى من جملة.
fn first_word(s: &str) -> &str {
let bytes = s.as_bytes();
for (i, &b) in bytes.iter().enumerate() {
if b == b' ' {
return &s[0..i];
}
}
s
}
fn main() {
println!("{}", first_word("hello there"));
}لماذا الشرائح آمنة
تتجنب الشرائح نسخ البيانات، وتمنع في الوقت نفسه المراجع المتدلية. ويضمن مدقق الاستعارة بقاء البيانات الأساسية مدة أطول من الشريحة.
fn main() {
let words = vec!["a", "b", "c", "d"];
let pair = &words[1..3];
println!("{:?}", pair);
}تحقق سريع
تذكّر ما تمثله الشريحة.
مراجعة
الشرائح في Rust:
- عرض مستعار:
&v[start..end]، والنهاية غير مشمولة. &strهي شريحة نصية؛ و&[T]هي شريحة من مصفوفة أو متجه.- تقبل معاملات الشرائح كلًا من المصفوفات والمتجهات.
- يضمن مدقّق الاستعارة أمان الشرائح.
fn average(nums: &[i32]) -> i32 {
nums.iter().sum::<i32>() / nums.len() as i32
}
fn main() {
let v = vec![4, 8, 12];
println!("{}", average(&v[..]));
}الأسئلة الشائعة
هل درس «المقاطع» مجاني؟
نعم — نص درس «المقاطع» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn Rust Coding، انتقل إلى CoddyKit PRO. تتضمن دورة Learn Rust Coding 4 دروس في المجموع.
ماذا ستتعلم في «المقاطع»؟
طرق عرض مستعارة تتمرن على Learn Rust Coding مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Learn Rust Coding؟
لا تُشترط خبرة سابقة. Learn Rust Coding على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «المقاطع»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Learn Rust Coding هذا؟
نعم. كل درس في Learn Rust Coding يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.