Stale translation: the English source changed after this draft. Treat the English edition as the authority.
هذه الصفحة مسودة مولَّدة آلياً ولم تُراجع بعد. تبقى أمثلة الشفرة والأوامر والمعرّفات بالإنجليزية.
البيانات والأخطاء#
أمثّل المجموعات وحالات المجال صراحة. اختر نوعاً يجعل الحالات غير الصالحة صعبة التعبير.
المصفوفات والصفوف#
let values: array<int> = [10, 20, 30]
let first = (at values 0)
(array_set values 1 25)
let pair: (int, string) = (7, "seven")
let number = pair.0
المصفوفات مفحوصة الحدود. بعض دوال المصفوفة تغيّر التخزين وترجع void؛ وأخرى ترجع مصفوفة جديدة. راجع Builtins بدلاً من استنتاج الملكية من اسم مألوف.
البنى والتعدادات#
struct Point {
x: int
y: int
}
enum Direction {
North
South
East
West
}
let origin = Point { x: 0, y: 0 }
الأنواع المسماة تستخدم UpperCamelCase. القيم والدوال تستخدم snake_case.
الاتحادات والمطابقة#
union ParseResult {
Value(int)
Error(string)
}
fn unwrap_or(result: ParseResult, fallback: int) -> int {
return (match result {
Value(value) => value
Error(_) => fallback
})
}
shadow unwrap_or {
assert (== (unwrap_or Value(7) 0) 7)
assert (== (unwrap_or Error("bad") 3) 3)
}
استخدم Result<T, E> أو اتحاداً صريحاً آخر للإخفاقات التي يمكن للمستدعي معالجتها. طابق المتغيرات حيث يمكنك الاسترداد أو إضافة سياق. عامل اللاحقة ? ينشر أخطاء النتيجة المتوافقة؛ استخدم match صريحاً عندما تهم التنظيف أو السياق.
السلاسل والسلاسل الثنائية#
string نص. bstring بيانات ثنائية بطول صريح ويمكن أن تحتوي بايتات صفر. التحويل وسلوك يونيكود موثّقان لكل مضمّن أو وحدة. لا تفترض أن فهارس البايت هي فهارس محارف يونيكود.
المجموعات#
المصفوفات وجداول التجزئة المضمنة منفصلة عن وحدات المجموعات ذات الخلفية C. تسرد صفحة Builtins المولَّدة التهجئات الدقيقة للمضمنات. تسرد صفحة Modules المولَّدة إعلانات الوحدات وحدود البناء الأصلي.