English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

أنواع البيانات في Rust

هناك أنواع من أنواع البيانات الأساسية في لغة Rust هي:

نوع الأعداد الصحيحة (Integer)

نوع الأعداد الصحيحة (Integer) يعتمد على طول النظام البيني ولوجود أو عدم وجود إشارة إلى أنواع الأعداد الصحيحة التالية:

طول النظام البينيمسمىغير مسمى
8-biti8u8
16-biti16u16
32-biti32u32
64-biti64u64
128-biti128u128
archisizeusize

نوعان من أنواع الأعداد الصحيحة seize و usize تستخدم لقياس حجم البيانات، طولها في النظام البيني يعتمد على المنصة المستخدمة، إذا كان معالجًا بنظام 32 بت فإنه سيستخدم نوع الأعداد الصحيحة ذات الطول 32 بت.

يمكن تمثيل الأعداد الصحيحة بطرق متعددة:

النظاممثال
النظام العشري98_222
النظام العشري0xff
النظام الثماني0o77
النظام الثنائي0b1111_0000
البايت (يمكن تمثيل نوع u8 فقط)b'A'

من الواضح أن هناك خطاً تحت بعض الأعداد الصحيحة، والتصميم هذا يجعل من السهل على الناس تحديد تقدير القيمة عند إدخال عدد كبير.

نوع الأعداد العشرية (Floating-Point)

Rust يدعم مثل باقي اللغات الأخرى الأعداد العشرية 32 بت (f32) والأعداد العشرية 64 بت (f64). بشكل افتراضي، سيتم تمثيل 64.0 كعدد عشري 64 بت، لأن معالجات الحواسيب الحديثة تعمل بسرعة تقريبية متساوية على حساب الأعداد العشرية من هذين النوعين، ولكن الأعداد العشرية 64 بت تتمتع بدقة أعلى.

fn main() {
    let x = 2.0; // f64
    let y: f32 = 3.0; // f32
}

العمليات الرياضية

استخدام برمجة لتعكس العمليات الرياضية:

fn main() { 
    let sum = 5 + 10; // الإضافة 
    let difference = 95.5 - 4.3; // النقص 
    let product = 4 * 30; // الضرب 
    let quotient = 56.7 / 32.2; // التقسيم 
    let remainder = 43 % 5; // الحصول على الباقي
}

بعد العديد من علامات التشغيل، يمكن إضافة علامة = لتعني التشغيل الذاتي، مثل:

sum += 1 تساوي sum = sum + 1.

ملاحظة:Rust لا يدعم ++ و --، لأن هاتين العلامتين التشغيليتين تظهر في مقدمة أو خلفية المتغيرات وتؤثر على قابلة قراءة الكود وتقلل من وعي المطور بالتغيرات في المتغير.

نوع الحقيقة

نوع الحقيقة يمثل بالـ bool، والقيم يمكن أن تكون فقط true أو false.

نوع الحرف

نوع الحرف يمثل بالـ char.

حجم نوع char في Rust هو 4 بايت، يمثل قيمة السكالر Unicode، مما يعني أنه يمكنه دعم الحروف غير الإنجليزية مثل الصينية، اليابانية والكورية، وحتى الرموز التعبيرية وفراغات عرض صفرية في Rust هي قيم char صالحة.

نطاق قيم Unicode من U+0000 إلى U+D7FF وU+E000 إلى U+10FFFF (بما في ذلك النهايات). ولكن، مفهوم "حرف" هذا لا يوجد في Unicode، لذا قد لا يتطابق انطباعك عن ما هو "حرف" مع مفهوم حرف Rust. لذا، يُنصح عادةً باستخدام 字符串 لتخزين النصوص UTF-8 (حيثما يمكن أن تكون الحروف غير الإنجليزية في 字符串).

ملاحظة:بسبب أن هناك نوعين من تشفير النصوص الصينية (GBK و UTF-8)، قد تحدث مشاكل في تشفير النصوص الصينية في البرمجة، لأن تشفير البرنامج وتشفير سطر الأوامر غير متوافقين، لذا يجب استخدام تشفير UTF-8 للنصوص والكarakters في Rust، وإلا سيقوم الماكينوم معرفة الخطأ.

أنواع المركبة

تتكون التجميعات من مجموعة من البيانات المدمجة بين علامتي ( ) وتستطيع أن تحتوي على أنواع مختلفة من البيانات:

let tup: (i32, f64, u8) = (500, 6.4, 1);
// tup.0 يساوي 500
// tup.1 يساوي 6.4
// tup.2 يساوي 1
let (x, y, z) = tup;
// y يساوي 6.4

تتكون المصفوفات من مجموعة من البيانات المماثلة مدمجة بين علامتي [ ].

let a = [1, 2, 3, 4, 5];
// a هو مصفوفة من الأعداد الطبيعية طويلة 5
let b = ["January", "February", "March"];
// b هو مصفوفة من السلاسل طويلة 3
let c: [i32; 5] = [1, 2, 3, 4, 5];
// c هو مصفوفة i32 طويلة 5
let d = [3; 5];
// يساوي let d = [3, 3, 3, 3, 3];
let first = a[0];
let second = a[1];
// زيارة المصفوفة
a[0] = 123; // خطأ: لا يمكن تعديل المصفوفة a
let mut a = [1, 2, 3];
a[0] = 4; // صحيح