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

إضافة عناصر باستخدام push

جزء من قسم Logic & Flow في رحلة Rust على Coddy — الدرس 9 من 66.

بمجرد أن يكون لديك متجه (vector)، ستحتاج غالباً إلى إضافة عناصر جديدة إليه. توفر لغة Rust الطريقة .push() لإضافة عناصر إلى نهاية المتجه. هذه واحدة من أكثر العمليات شيوعاً التي ستجريها على المتجهات.

إليك كيفية استخدام .push():

let mut numbers = Vec::new();
numbers.push(10);
numbers.push(20);
numbers.push(30);

لاحظ الكلمة المفتاحية mut - هذا أمر بالغ الأهمية! بما أن إضافة العناصر تغير محتويات الـ vector، يجب التصريح عن الـ vector كقابل للتغيير (mutable). بدون mut، لن تسمح لك لغة Rust بتعديل الـ vector.

تقوم الطريقة .push() دائمًا بإضافة العنصر الجديد إلى نهاية المتجه (vector). كل استدعاء لـ .push() يزيد من طول المتجه بمقدار واحد:

let mut fruits = Vec::new();
fruits.push("apple");
fruits.push("banana");
// يحتوي fruits الآن على ["apple", "banana"]

يمكنك أيضاً البدء بمتجه (vector) يحتوي بالفعل على عناصر والاستمرار في الإضافة إليه:

let mut scores = vec![85, 92];
scores.push(78); // أصبح scores الآن [85, 92, 78]
challenge icon

التحدي

سهل

ستتلقى ثلاثة أرقام كمدخلات، كل منها في سطر منفصل. اقرأ هذه الأرقام، وحولها إلى أعداد صحيحة، وأضفها إلى متجه (vector) باستخدام الطريقة .push(). بعد إضافة الأرقام الثلاثة جميعها، اطبع كل عنصر من عناصر المتجه في سطر منفصل.

المتطلبات:

  • إنشاء متجه (vector) فارغ وقابل للتغيير (mutable)
  • قراءة ثلاثة أرقام من المدخلات وتحويل كل منها إلى عدد صحيح
  • استخدم .push() لإضافة كل رقم إلى المتجه
  • طباعة كل عنصر من عناصر المتجه في سطر منفصل

المدخلات: ثلاثة أعداد صحيحة، كل منها في سطر منفصل

المخرجات: طباعة كل عنصر من عناصر المتجه في سطر منفصل

ورقة مرجعية

لإضافة عناصر إلى متجه (vector)، استخدم الأسلوب .push(). يجب التصريح عن المتجه كقابل للتغيير (mutable) باستخدام الكلمة المفتاحية mut:

let mut numbers = Vec::new();
numbers.push(10);
numbers.push(20);
numbers.push(30);

يقوم الأسلوب .push() بإضافة عناصر إلى نهاية المتجه ويزيد طوله بمقدار واحد مع كل استدعاء.

يمكنك أيضاً إضافة عناصر إلى متجه يحتوي بالفعل على قيم:

let mut scores = vec![85, 92];
scores.push(78); // scores هي الآن [85, 92, 78]

جرّب بنفسك

use std::io;

fn main() {
    // قراءة ثلاثة أرقام من المدخلات
    let mut input1 = String::new();
    io::stdin().read_line(&mut input1).expect("Failed to read line");
    let num1: i32 = input1.trim().parse().expect("Invalid input");
    
    let mut input2 = String::new();
    io::stdin().read_line(&mut input2).expect("Failed to read line");
    let num2: i32 = input2.trim().parse().expect("Invalid input");
    
    let mut input3 = String::new();
    io::stdin().read_line(&mut input3).expect("Failed to read line");
    let num3: i32 = input3.trim().parse().expect("Invalid input");
    
    // TODO: اكتب كودك أدناه
    // إنشاء متجه (vector) قابل للتعديل وإضافة الأرقام إليه
    
    
    // طباعة كل عنصر من عناصر المتجه في سطر منفصل
}
quiz iconاختبر نفسك

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

جميع دروس Logic & Flow