دوال المصفوفات
جزء من قسم Fundamentals في رحلة Rust على Coddy — الدرس 61 من 75.
المصفوفات مزودة بالعديد من الدوال (methods). للوصول إلى دالة، اكتب:
array.methodName(otherParameters)إليك قائمة بالأساليب الأساسية:
len()- تعيد عدد العناصر في المصفوفةcontains(value)- تتحقق مما إذا كانت المصفوفة تحتوي على قيمة محددة
is_empty()- يتحقق مما إذا كانت المصفوفة فارغةreverse()- يعكس المصفوفة
على سبيل المثال:
let numbers = [10, 20, 30, 40, 50];
let length = numbers.len();
println!("Length: {}", length);
numbers.reverse();
// [50, 40, 30, 20, 10]مثال على طريقة is_empty():
let numbers: [i32; 0] = [];
let empty = numbers.is_empty();
println!("Is empty: {}", empty);سيكون الناتج:
Is empty: trueعند استخدام contains، تحتاج إلى تمرير مرجع للقيمة التي تبحث عنها باستخدام &. على سبيل المثال:
let numbers = [10, 20, 30, 40, 50];
let has_thirty = numbers.contains(&30);
println!("Contains 30: {}", has_thirty);
// المخرجات: Contains 30: trueالتحدي
سهلأنشئ دالة باسم analyze_array تستقبل مصفوفة من السلاسل النصية بحجم 5 كوسيط. يجب أن تقوم الطريقة بالعمليات التالية:
- تحقق مما إذا كانت المصفوفة فارغة باستخدام طريقة
is_empty()واطبع النتيجة. - تحقق مما إذا كانت المصفوفة تحتوي على السلسلة النصية
“5”باستخدام طريقةcontains()واطبع النتيجة. تذكر استخدام String وليس str:“5”.to_string() - اعكس المصفوفة واطبعها
يجب أن يتبع المخرج هذا التنسيق تماماً:
Is empty: [true or false]
Contains 5: [true or false]
Reversed Elements:
[element1]
[element2]
...جرّب بنفسك
use std::io;
use std::convert::TryInto;
fn analyze_array(arr: &mut [String; 5]) {
// اكتب الكود هنا
// اطبع العناصر سطرًا بسطر
for element in arr.iter() {
println!("{}", element);
}
}
fn main() {
let mut input_str_arr = String::new();
io::stdin().read_line(&mut input_str_arr).unwrap();
let mut arr: [String; 5] = input_str_arr.split(',').map(String::from).collect::<Vec<String>>().try_into().unwrap();
analyze_array(&mut arr);
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)اختصارات العمليات الحسابيةمعاملات المقارنةمقارنة النصوص7أساسيات الإدخال والإخراج
الطباعة على الكونسولقراءة مدخلات المستخدممراجعة - حتى 120مراجعة - True أو False13تكملة المصفوفات
مصفوفات المراجع القابلة للتغييردوال المصفوفاتمراجعة - مصفوفة الضربمراجعة - المصفوفة المعكوسةطباعة أفضل2المتغيرات - الجزء الأول
الأرقامالمحارف (Char)النصوص (String)القيم المنطقية (Boolean)المتغيرات القابلة للتغيير5المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالث11الدوال
تعريف الدوالالمعاملات والوسائطقيم الإرجاعقيم إرجاع متعددةمراجعة - دالة Sigmaمراجعة - دالة التحقق14التكرار عبر المصفوفات
دليل النطاق (Range)حلقة For المحسنةالاستعارة في الحلقةعمليات المصفوفات الشائعة3المتغيرات - الجزء الثاني
التصريح عن النوعقواعد التسميةاستنتاج النوعمراجعة - تهيئة المتغيراتتحويل الأنواع9الحلقات التكرارية
For عبر السلاسلحلقة Whileجملة Breakجملة Continueالحلقات المتداخلةتسميات الحلقاتالحلقة اللانهائيةمراجعة - الإدخال الديناميكي