السلطان
  1. الرئيسية
  2. الأمثلة
  3. وقت الترجمة

المزخرفات تغلف دالة بدالة عادية أخرى

comptime/decorators.sn
// المزخرفات تغلف دالة بدالة عادية أخرى.
استورد std.io.println;
استورد std.text.number;

عرف ضاعف(وقت_الترجمة د: دالة(عدد): عدد, القيمة: عدد): عدد {
    أرجع د(القيمة) * 2;
}

عرف زد_واحدا(وقت_الترجمة د: دالة(عدد): عدد, القيمة: عدد): عدد {
    أرجع د(القيمة) + 1;
}

@زد_واحدا
@ضاعف
عرف مربع_العدد(القيمة: عدد): عدد { أرجع القيمة * القيمة; }

عرف الرئيسية(): عدد {
    اطبع_سطر(عدد_إلى_نص(مربع_العدد(5)));
    أرجع 0;
}

التشغيل

بالمفسر، دون ترجمة:

./build/sultanc run examples/ar/comptime/decorators.sn

أو ترجمه إلى ملف تنفيذي:

./build/sultanc examples/ar/comptime/decorators.sn -o build/example && ./build/example

المصدر على GitHub   كل الأمثلة