// قيم في الكومة بـ`صندوق`، ومؤشرات خام تحتاج كتلة `غير_آمن`.
استورد std.io.println;
استورد std.text.number;
عرف الرئيسية(): عدد {
دع المعلب: صندوق عدد = صندوق 40;
دع المجموع: عدد = *المعلب + 2;
اطبع_سطر(عدد_إلى_نص(المجموع));
دع العداد: متغير عدد = 10;
دع المؤشر: *متغير عدد = &متغير العداد;
غير_آمن {
*المؤشر := *المؤشر * 3;
}
اطبع_سطر(عدد_إلى_نص(العداد));
أرجع 0;
}// Heap values with `box`, and raw pointers that need an `unsafe` block.
import std.io.println;
import std.text.number;
def main(): int {
let boxed: box int = box 40;
let total: int = *boxed + 2;
println(int_to_text(total));
let counter: mutable int = 10;
let pointer: *mutable int = &mutable counter;
unsafe {
*pointer := *pointer * 3;
}
println(int_to_text(counter));
return 0;
}
التشغيل
بالمفسر، دون ترجمة:
./build/sultanc run examples/ar/memory/box_and_pointers.snأو ترجمه إلى ملف تنفيذي:
./build/sultanc examples/ar/memory/box_and_pointers.sn -o build/example && ./build/example