Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

دوال المصفوفات

جزء من قسم Fundamentals في رحلة Rust على Coddy — الدرس 61 من 75.

المصفوفات مزودة بالعديد من الميثود (الوظائف). للوصول إلى ميثود، اكتب:

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
challenge icon

التحدي

سهل

قم بإنشاء دالة باسم analyze_array تستقبل مصفوفة من السلاسل النصية (strings) بحجم 5 كوسيط. يجب أن تقوم الدالة بالعمليات التالية:

  1. التحقق مما إذا كانت المصفوفة فارغة باستخدام طريقة is_empty() وطباعة النتيجة.
  2. التحقق مما إذا كانت المصفوفة تحتوي على السلسلة النصية "5" باستخدام طريقة contains() وطباعة النتيجة. تذكر استخدام String وليس str: "5".to_string()
  3. عكس ترتيب المصفوفة وطباعتها.

يجب أن يتبع المخرج هذا التنسيق تماماً:

Is empty: [true or false]
Contains 5: [true or false]
Reversed Elements:
[element1]
[element2]
...

ورقة مرجعية

تمتلك المصفوفات دوالاً مدمجة يتم الوصول إليها باستخدام تدوين النقطة (dot notation):

array.methodName(otherParameters)

دوال المصفوفات الأساسية:

  • len() - تعيد عدد العناصر
  • contains(value) - تتحقق مما إذا كانت المصفوفة تحتوي على قيمة محددة
  • is_empty() - تتحقق مما إذا كانت المصفوفة فارغة
  • reverse() - تعكس ترتيب المصفوفة

أمثلة:

let numbers = [10, 20, 30, 40, 50];
let length = numbers.len();
let has_thirty = numbers.contains(&30);
let empty = numbers.is_empty();
numbers.reverse(); // [50, 40, 30, 20, 10]

ملاحظة: تتطلب الدالة contains() مرجعاً للقيمة باستخدام &.

جرّب بنفسك

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);
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals