كيفية تحويل سلسلة نصية (String أو &str) إلى رقم (int) في Rust؟
مرحباً بالجميع! لقد بدأت للتو في تعلم Rust، وانتقلت من Python، وواجهت مشكلة حيرتني. أحتاج إلى قراءة رقم من الإدخال القياسي أو من ملف نصي وإجراء عمليات حسابية عليه.
في Python يتم ذلك في سطر واحد: `number = int(input())`. لكن في Rust أحصل على أخطاء في الترجمة.
إليك الكود الخاص بي الذي لا يعمل:
```rust
use std::io;
fn main() {
let mut input = String::new();
io::stdin().read_line(&mut input)
.expect("فشل في قراءة السطر");
let number: i32 = input; // خطأ! عدم تطابق الأنواع
println!("الرقم المُدخل: {}", number + 10);
}
```
المترجم يعطي خطأ: `expected i32, found struct String`. أفهم أن `read_line` تُرجع سلسلة نصية وليس رقماً. لكن كيف يمكنني تحويلها؟
حاولت استخدام `parse()`، لكني حصلت على خطأ آخر: `error[E0282]: type annotations needed`. هل يمكن لأحد أن يشرح الطريقة الصحيحة لتحويل سلسلة نصية إلى عدد صحيح؟