Avatar ·

مصحح خطوة بخطوة لـ 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!` يُحدث فوضى في المخرجات ولا يسمح لي برؤية الحالة بشكل صحيح.