التعبيرات والتعليمات
التعبير الأخير
التعبيرات والتعليمات درس مجاني في Learn Rust Coding على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn Rust Coding، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn Rust Coding 4 دروس في المجموع.
التعليمات مقابل التعبيرات
تميز Rust بين نوعين من التعليمات البرمجية:
- التعليمات تنفذ إجراءً ولا تعيد قيمة.
- التعبيرات تُقيَّم إلى قيمة.
يؤثر هذا التمييز في طريقة إعادة الدوال للقيم.
fn main() {
let x = 5; // a let statement
let y = x + 1; // x + 1 is an expression
println!("{}", y);
}let تعليمة
يُعد إسناد let تعليمة. ولا يعيد قيمة، لذلك لا يمكنكم كتابة let a = (let b = 6);.
fn main() {
let a = 6;
// let c = (let d = 6); // error: let is not an expression
println!("{}", a);
}تُقيَّم التعبيرات إلى قيم
تُعد العمليات الحسابية واستدعاءات الدوال والقيم الحرفية كلها تعبيرات لأنها تنتج قيمة.
52 + 3square(4)
fn main() {
let v = 2 + 3 * 4;
println!("{}", v);
}الكتل تعبيرات
الكتلة { ... } هي تعبير بحد ذاتها. وتكون قيمتها هي التعبير الأخير داخلها إذا لم يتبعه فاصلة منقوطة.
fn main() {
let y = {
let x = 3;
x + 1
};
println!("y is {}", y);
}الفاصلة المنقوطة مهمة
تؤدي إضافة فاصلة منقوطة إلى تحويل التعبير إلى تعليمة، مع تجاهل قيمته.
x + 1— تعبير ينتج قيمة.x + 1;— تعليمة تنتج().
fn main() {
let y = {
let x = 3;
x + 1 // no semicolon: this is the block's value
};
println!("{}", y);
}التعبير الأخير يُعاد
في الدالة، يصبح التعبير النهائي الذي لا يتبعه فاصلة منقوطة هو القيمة المُعادة. وهذا هو الأسلوب الاصطلاحي في Rust.
fn main() {
println!("{}", five());
}
fn five() -> i32 {
5
}الفاصلة المنقوطة تُفسد الإعادة
إذا أضفتم فاصلة منقوطة إلى السطر الأخير عن طريق الخطأ، فستعيد الدالة () بدلًا من قيمتكم؛ وهذا خطأ شائع لدى المبتدئين.
fn main() {
println!("{}", plus_one(10));
}
fn plus_one(n: i32) -> i32 {
n + 1 // correct: no semicolon
}if كتعبير
بما أن if تعبير، يمكنكم إسناد نتيجته إلى متغير. ويجب أن ينتج كلا الفرعين النوع نفسه.
fn main() {
let condition = true;
let number = if condition { 5 } else { 6 };
println!("number is {}", number);
}loop كتعبير
يمكن لـ loop إعادة قيمة من خلال break. وتصبح القيمة التي تأتي بعد break نتيجة الحلقة.
fn main() {
let mut counter = 0;
let result = loop {
counter += 1;
if counter == 10 {
break counter * 2;
}
};
println!("result {}", result);
}match كتعبير
إن match تعبير أيضًا. وينتج كل ذراع قيمة، وتكون قيمة الذراع المطابق هي النتيجة.
fn main() {
let n = 2;
let label = match n {
1 => "one",
2 => "two",
_ => "many",
};
println!("{}", label);
}تجميع المفاهيم
يجعل التعامل مع الكتل وتدفق التحكم على أنهما تعبيرات لغة Rust موجزة: إذ تحسبون القيمة وتعيدونها في خطوة واحدة سلسة.
fn main() {
let score = 85;
let grade = if score >= 90 { 'A' } else if score >= 80 { 'B' } else { 'C' };
println!("grade {}", grade);
}تحقق سريع
ماذا تفعل إضافة فاصلة منقوطة إلى تعبير؟
مراجعة
التعبيرات والتعليمات في Rust:
- التعليمات (مثل
let) تنفذ عملًا لكنها لا تعيد قيمة. - التعبيرات تُقيَّم إلى قيمة.
- الكتل و
ifوmatchوloopتعبيرات. - يكون التعبير الأخير الذي لا يتبعه فاصلة منقوطة هو القيمة المُعادة.
fn main() {
let x = { let a = 2; a * a };
let y = if x > 3 { "big" } else { "small" };
println!("{} {}", x, y);
}الأسئلة الشائعة
هل درس «التعبيرات والتعليمات» مجاني؟
نعم — نص درس «التعبيرات والتعليمات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تعريف الدوال
- التعبيرات والتعليمات
- الإغلاقات
- Fn وFnMut وFnOnce