Avatar ·

كيفية تحديد أن حقل الهيكل يجب أن ينفذ trait في Rust؟

مرحبًا بالجميع! أنا أكتب بلغة Rust منذ فترة قصيرة، وقد واجهت مشكلة مع الـ traits. أريد إنشاء هيكل يخزن قيمة ما، ويجب أن تنفذ هذه القيمة trait معينًا. على سبيل المثال، أكتب آلة حاسبة بسيطة حيث يوجد trait `Operation` مع دالة `compute`. أريد أن يحتوي الهيكل `Calculator` على حقل `operation` يمكن أن يكون أي هيكل ينفذ هذا الـ trait. إليك ما أحاول فعله: ```rust trait Operation { fn compute(&self, a: i32, b: i32) -> i32; } struct Calculator { operation: Operation, // خطأ: trait objects must include the `dyn` keyword } fn main() { let add = AddOperation; let calc = Calculator { operation: add }; println!("{}", calc.operation.compute(5, 3)); } ``` المترجم يعطي خطأ: "the trait `Operation` cannot be made into an object". لقد قرأت عن `dyn` و `Box`، لكنني لا أفهم أي نهج هو الصحيح. هل يجب استخدام `Box`، أم هناك طريقة باستخدام...