العودة إلى الدورة

الملكية: قلب لغة Rust

لغة Rust للأنظمة وأمن الـ Web3

القواعد الثلاث للملكية (Ownership)

الملكية هي الطريقة الفريدة التي تتبعها Rust لإدارة الذاكرة دون الحاجة لمجمّع قمامة (garbage collector).

  1. لكل قيمة في Rust متغير يسمى مالكها (owner).
  2. لا يمكن أن يكون هناك إلا مالك واحد فقط في المرة الواحدة.
  3. عندما يخرج المالك عن النطاق (scope)، يتم إسقاط القيمة (تحريرها من الذاكرة).

مفاهيم النقل (Move Semantics)

عند تخصيص نوع معقد (مثل String) لمتغير آخر، لا يتم نسخ البيانات، بل يتم نقلها.

rust let s1 = String::from("hello"); let s2 = s1; // s1 لم يعد صالحاً هنا! // println!("{}", s1); // خطأ!

يمنع هذا أخطاء 'التحرير المزدوج' (double free)، وهو ثغرة أمنية شائعة في C++.