إضافة عناصر باستخدام 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]التحدي
سهلستتلقى ثلاثة أرقام كمدخلات، كل منها في سطر منفصل. اقرأ هذه الأرقام، وحولها إلى أعداد صحيحة، وأضفها إلى متجه (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) قابل للتعديل وإضافة الأرقام إليه
// طباعة كل عنصر من عناصر المتجه في سطر منفصل
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1تدفق التحكم المتقدم
تعبير 'match'مطابقة قيم متعددةمطابقة النطاقاتتعبير 'if let'الحلقات التكرارية كتعبيراتمراجعة - محلل أوامر بسيط4تجميع البيانات باستخدام Structs
ما هو الـ Struct؟نظرة عامة على الـ Structsالوصول إلى حقول الـ Structالـ Structs القابلة للتعديلالـ Structs كمعاملات للدوالالـ Tuple Structsمراجعة - إنشاء Book Struct7معالجة الأخطاء باستخدام 'Result'
ما هو 'Result'؟استخدام 'match' مع 'Result'is_ok() و is_err()اختصارات: unwrap و expectعامل علامة الاستفهام '?'تحويل السلاسل النصية إلى أرقامملخص - دالة القسمة الآمنة10الـ Closures والدوال المجهولة
ما هو الـ Closure؟تعريف Closure بسيطالـ Closures مع المعاملاتالتقاط البيئة المحيطةملخص - Closure الجامع البسيط2مقدمة في الـ Vectors
ما هو الـ Vector؟إنشاء Vectorإضافة عناصر باستخدام pushالوصول إلى عناصر الـ Vectorالتكرار عبر الـ Vectorالتكرار القابل للتعديل (Mutable Iteration)إزالة العناصرمراجعة - متتبع نقاط بسيط5أزواج (المفتاح والقيمة) مع Hash Maps
ما هو Hash Map؟إنشاء Hash Mapإدراج أزواج (المفتاح والقيمة)الوصول إلى القيمالتكرار عبر Hash Mapتحديث قيمةإزالة زوجملخص - عداد الكلمات6التعامل مع غياب القيم باستخدام 'Option'
ما هو الـ 'Option'؟استخدام 'match' مع 'Option''is_some()' و 'is_none()'فك تغليف الـ 'Option'الدالة 'expect'توفير قيمة افتراضية: 'unwrap_or'مراجعة - البحث عن عنصر9شرائح الـ String والمزيد
String مقابل &strإنشاء شرائح الـ Stringالشرائح كمعاملات للدوالشرائح أخرىمراجعة - إيجاد الكلمة الأولى