Avatar ·

ماذا تعني المعرفات ذات علامة الاقتباس المفردة (') في Rust؟

بدأت تعلم Rust وأرى غالباً في الكود معرفات غريبة تبدأ بعلامة اقتباس مفردة، مثل `'a` أو `'b` أو `'static`. أفهم أنها ليست سلاسل نصية أو أحرفاً، لأنها تظهر بين أقواس زاوية بعد اسم الدالة أو في تعريف الهياكل. هذا مثال وجدته في التوثيق: ```rust fn longest<'a>(x: &'a str, y: &'a str) -> &'a str { if x.len() > y.len() { x } else { y } } ``` ما هو `'a`؟ لماذا هو مطلوب؟ وماذا يعني `'static` الذي رأيته في بعض الأمثلة؟ أعتقد أن Rust يستخدم هذه الرموز لشيء متعلق بالتحقق من الذاكرة، لكنني لا أستطيع فهم المنطق. اشرح لي، من فضلك، بكلمات بسيطة كمبتدئ. <<>>

ما هي زمن الحياة (lifetimes) في Rust؟

المعرفات ذات علامة الاقتباس المفردة، مثل 'a أو 'b أو 'static، تُسمى تعليقات زمن الحياة (lifetime annotations). لا تؤثر على مدة بقاء