استعارة البيانات (Borrowing)
ماذا لو أردت استخدام قيمة دون نقل ملكيتها؟ نستخدم حينها المراجع (&).
rust fn calculate_length(s: &String) -> usize { s.len() }
قواعد الاستعارة
- يمكنك الحصول على إما مرجع واحد قابل للتغيير (
mut T&) أو أي عدد من المراجع غير القابلة للتغيير (T&) في نفس الوقت. - يجب أن تكون المراجع صالحة دائماً.
يمنع هذا النظام 'سباق البيانات' (Data Races) في وقت التجميع، وهو أمر ضروري للأنظمة متعددة الخيوط (multi-threaded) وعقد البلوكشين الآمنة.