Avatar ·

Как вернуть ссылку на переменную, созданную внутри функции в Rust?

```html مرحباً بالجميع! لقد بدأت للتو في تعلم Rust وواجهت مشكلة لا أستطيع حلها. أكتب دالة تنشئ سلسلة نصية (String) داخلها، وتعالجها، ثم تريد إرجاع مرجع إلى هذه السلسلة. إليك الكود المبسط: ```rust fn get_data() -> &str { let data = String::from("Hello, world!"); &data } ``` يُصدر المترجم خطأ: `cannot return reference to local variable 'data'`. أفهم أن هذا مرتبط بأوقات الحياة (lifetimes)، لكنني لا أستوعب الجوهر تماماً. في C++، يمكنني إرجاع مؤشر إلى مصفوفة محلية (على الرغم من أن هذا سلوك غير محدد)، وفي Python لا توجد هذه المشكلة أصلاً. كيف يمكنني إرجاع مرجع إلى سلسلة نصية تم إنشاؤها داخل الدالة بشكل صحيح؟ أحتاج إلى أن تعيد الدالة &str وليس String، لأنني سأمررها لاحقاً إلى دوال أخرى تتوقع شريحة. لقد قرأت عن الملكية (ownership) والاقتراض (borrowing)، لكن هذه الحالة تحديداً تسبب لي الإرباك. لماذا يمنع Rust القيام بذلك، وما هي الحلول البديلة؟ ربما ```