قيم إرجاع متعددة
جزء من قسم Fundamentals في رحلة Rust على Coddy — الدرس 52 من 75.
في لغة Rust، يمكن للدالة إرجاع قيم متعددة باستخدام tuple كنوع للإرجاع. الـ tuple هي مجموعة من القيم المختلفة مجمعة في وحدة واحدة.
على سبيل المثال:
fn get_coordinates() -> (i32, i32) {
let x = 10;
let y = 20;
(x, y) // إرجاع tuple
}وهذه هي طريقة استدعاء الدالة:
let (x, y) = get_coordinates();
// تفكيك الـ tuple
// إلى متغيرات منفصلة
println!("{}, {}", x, y);يمكنك إرجاع أي عدد تريده من القيم عن طريق إضافة المزيد من العناصر إلى الصف (tuple). على سبيل المثال:
fn get_details() -> (String, i32, f64) {
let name = String::from("Alice");
let age = 30;
let score = 95.5;
(name, age, score)
// إرجاع صف (tuple) يحتوي على ثلاث قيم
}وهذه هي طريقة استدعاء الدالة:
let (name, age, score) = get_details();
println!("{}, {}, {}", name, age, score);التحدي
سهلأنشئ دالة باسم get_user_info تعيد صفًا (tuple) يحتوي على اسم المستخدم وعمره وبريده الإلكتروني. يجب أن يكون للدالة التوقيع التالي:
fn get_user_info() -> (String, i32, String)داخل الدالة، أنشئ المتغيرات التالية:
name: من نوعStringمهيأ بالقيمة "Bob"age: من نوعi32مهيأ بالقيمة 25email: من نوعStringمهيأ بالقيمة "bob@example.com"
أعد هذه القيم الثلاث كصف (tuple).
في الدالة main، استدعِ get_user_info وقم بتفكيك الصف المعاد إلى متغيرات منفصلة تسمى name و age و email. بعد ذلك، اطبع هذه القيم على وحدة التحكم باستخدام println! بالتنسيق التالي:
Name: [name], Age: [age], Email: [email]ورقة مرجعية
يمكن للدوال إرجاع قيم متعددة باستخدام الصفوف (tuples) كنوع للإرجاع:
fn get_coordinates() -> (i32, i32) {
let x = 10;
let y = 20;
(x, y) // إرجاع صف (tuple)
}استدعِ الدالة وقم بتفكيك الصف (tuple) إلى متغيرات منفصلة:
let (x, y) = get_coordinates();
println!("{}, {}", x, y);يمكنك إرجاع قيم متعددة من أنواع مختلفة:
fn get_details() -> (String, i32, f64) {
let name = String::from("Alice");
let age = 30;
let score = 95.5;
(name, age, score)
}let (name, age, score) = get_details();
println!("{}, {}, {}", name, age, score);جرّب بنفسك
fn get_user_info() -> (String, i32, String) {
// أنشئ متغيرات الاسم والعمر والبريد الإلكتروني هنا
// أرجع الصف (tuple)
}
fn main() {
// استدعِ get_user_info وقم بتفكيك الصف المرجع
// اطبع القيم
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)اختصارات العمليات الحسابيةمعاملات المقارنةمقارنة النصوص7أساسيات الإدخال والإخراج
الطباعة على الكونسولقراءة مدخلات المستخدممراجعة - حتى 120مراجعة - True أو False2المتغيرات - الجزء الأول
الأرقامالمحارف (Char)النصوص (String)القيم المنطقية (Boolean)المتغيرات القابلة للتغيير5المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالث11الدوال
تعريف الدوالالمعاملات والوسائطقيم الإرجاعقيم إرجاع متعددةمراجعة - دالة Sigmaمراجعة - دالة التحقق14التكرار عبر المصفوفات
دليل النطاق (Range)حلقة For المحسنةالاستعارة في الحلقةعمليات المصفوفات الشائعة3المتغيرات - الجزء الثاني
التصريح عن النوعقواعد التسميةاستنتاج النوعمراجعة - تهيئة المتغيراتتحويل الأنواع9الحلقات التكرارية
For عبر السلاسلحلقة Whileجملة Breakجملة Continueالحلقات المتداخلةتسميات الحلقاتالحلقة اللانهائيةمراجعة - الإدخال الديناميكي