Avatar ·

كيفية تحويل String إلى &'static str في Rust؟

مرحبًا بالجميع، لقد بدأت للتو في تعلم Rust وواجهت مشكلة تتعلق بأزمنة الحياة (lifetimes). لدي دالة تُرجع &'static str، لكني أحصل على String من إدخال المستخدم (عبر stdin) أو من عملية ديناميكية أخرى. كيف يمكنني تحويل String عادي إلى &'static str؟ إليك مثال على كود لا يتم ترجمته: ```rust fn get_static_string(input: String) -> &'static str { &input } fn main() { let my_string = String::from("hello"); let static_str = get_static_string(my_string); println!("{}", static_str); } ``` المترجم يعطي خطأ: `cannot return reference to local variable 'input'`. أفهم أن هذا مرتبط بأن `input` سيتم تدميره بعد الخروج من الدالة، لكني بحاجة إلى إرجاع `&'static str` تحديدًا. كيف يمكن حل هذه المشكلة؟ هل هناك trait أو دالة لـ "تحويل" سلسلة نصية عادية إلى سلسلة ثابتة؟ سمعت عن `Box::leak`، لكني لست متأكدًا من أنه النهج الصحيح. سأكون