مصحح خطوة بخطوة لـ Rust: كيفية تصحيح الأخطاء في عام 2024؟
مرحبًا بالجميع! أكتب بلغة Rust منذ عدة أشهر، لكني لا أستطيع التعود على تصحيح الأخطاء. في Python كنت فقط أضع `import pdb; pdb.set_trace()` وأتنقل بسهولة عبر الكود. أما في Rust فأشعر وكأنني قطة عمياء.
إليكم مشكلة محددة. لدي دالة تعالج الطلبات:
```rust
fn process_orders(orders: Vec) -> Vec {
orders
.into_iter()
.filter(|o| o.status == OrderStatus::Pending)
.map(|o| {
let discount = calculate_discount(&o);
let total = o.amount - discount;
ProcessedOrder {
id: o.id,
final_price: total,
items_count: o.items.len(),
}
})
.collect()
}
```
أشتبه في أن `calculate_discount` تُرجع قيمة خاطئة، لكني لا أستطيع فهم ما هو الخطأ بالضبط. `println!` يُخرج الكثير من البيانات غير المفيدة في الطرفية، و `dbg!` يُحدث فوضى في المخرجات ولا يسمح لي برؤية الحالة بشكل صحيح.