كيفية إرجاع مكرر (أو أي trait آخر) من دالة في Rust بشكل صحيح؟
مرحبًا أيها الزملاء! بدأت تعلم Rust وواجهت مشكلة تبدو غريبة جدًا بالنسبة لي. أحاول كتابة دالة تُرجع مكررًا، لكن المترجم يشتكي باستمرار.
إليك ما أريد فعله: لدي متجه من الأرقام، وأريد تصفية الأرقام الزوجية وإرجاع مكرر عليها. كتبت هذا الكود:
```rust
fn get_even_numbers(numbers: Vec) -> Iterator- {
numbers.into_iter().filter(|&x| x % 2 == 0)
}
```
لكن المترجم يعطي خطأ:
```
error[E0277]: the size for values of type `(dyn Iterator
- + 'static)` cannot be known at compilation time
```
أفهم أن الـ traits ليست أنواعًا ذات حجم ثابت، لكن كيف يمكن إرجاع مكرر بشكل صحيح؟ رأيت أنه في بعض الأماكن يُستخدم `Box
>`، لكن هذا يبدو كحل مؤقت. هل هناك طريقة أكثر أصالة؟
أيضًا، يهمني معرفة كيفية التعامل مع traits أخرى، مثل إذا أردت إرجاع `Display` أو `Clone`. هل هناك