Avatar ·

كيفية تحويل سلسلة نصية (String) إلى عدد صحيح (int) في Rust؟

مرحباً بالجميع! لقد بدأت للتو في تعلم Rust، وانتقلت من Python، وواجهت مشكلة تحويل سلسلة نصية إلى رقم. في Python كنت معتاداً على كتابة `int("123")` والحصول على الرقم 123. لكن في Rust تبين أن الأمر أكثر تعقيداً. لدي متغير: ```rust let input = String::from("42"); let number: i32 = input; // خطأ! ``` يُصدر المترجم خطأ: `expected i32, found String`. أفهم أن Rust لغة ذات أنواع صارمة، ولا يمكن ببساطة تعيين سلسلة نصية لرقم. حاولت استخدام `as` لتحويل النوع: ```rust let number: i32 = input as i32; // خطأ أيضاً ``` لكن هذا لا يعمل أيضاً. قرأت أنه في Rust يجب استخدام طريقة `parse()`، لكنني لا أفهم كيفية تطبيقها بشكل صحيح. ماذا أفعل إذا كانت السلسلة النصية قد تكون غير صالحة (مثل "abc")؟ كيف أتعامل مع الخطأ؟ وماذا لو كانت السلسلة النصية طويلة جداً أو تحتوي على مسافات؟ سأكون ممتناً لمثال مفصل مع شرح حول كيفية تحويل `String` إلى `i32` (أو أعداد صحيحة أخرى) بشكل صحيح مع مراعاة