تخطَّ إلى المحتوى

الماكرو

الماكرو في كنوز يسمح بتوليد الكود وقت الترجمة وتوفير اختصارات مفيدة.

الماكرو الأساسي للطباعة مع سطر جديد.

// طباعة نص بسيط
اطبع_سطر!("مرحباً بالعالم");
// طباعة مع متغيرات
دع اسم = "أحمد";
دع عمر = 25;
اطبع_سطر!("الاسم: {} والعمر: {}", اسم, عمر);
// طباعة أنواع مختلفة
دع س = 3.14;
اطبع_سطر!("القيمة: {}", س);
دع عدد = 42;
دع نص = "اختبار";
// عناصر نائبة متعددة
اطبع_سطر!("العدد {} والنص {}", عدد, نص);
// تداخل التعابير
دع أ = 5;
دع ب = 3;
اطبع_سطر!("الناتج: {}", أ + ب);
// استخدام مع الهياكل
هيكل نقطة {
س: صحيح,
ص: صحيح
}
دع ن = نقطة { س: 10, ص: 20 };
اطبع_سطر!("النقطة: ({}, {})", ن.س, ن.ص);
النوعالتنسيقالمثال
صحيح{}اطبع_سطر!("العدد: {}", 42)
عشري{}اطبع_سطر!("القيمة: {}", 3.14)
نص{}اطبع_سطر!("الاسم: {}", "أحمد")
منطقي{}اطبع_سطر!("الحالة: {}", صح)
// أمثلة على كل نوع
دع ص: صحيح = 100;
دع ع: عشري = 2.718;
دع ن: نص = "كنوز";
دع م: منطقي = صح;
اطبع_سطر!("صحيح: {}", ص);
اطبع_سطر!("عشري: {}", ع);
اطبع_سطر!("نص: {}", ن);
اطبع_سطر!("منطقي: {}", م);
اطبع_سطر!("السطر الأول");
اطبع_سطر!("السطر الثاني");
اطبع_سطر!("السطر الثالث");
// أو في سطر واحد مع \n
اطبع!("السطر الأول\nالسطر الثاني\nالسطر الثالث\n");
اطبع!("أدخل اسمك: ");
// قراءة المدخل
// طباعة جدول الضرب
لكل ي في 1..=10 {
لكل ج في 1..=10 {
اطبع_سطر!("{} × {} = {}", ي, ج, ي * ج);
}
اطبع_سطر!("---");
}
// طباعة عناصر مصفوفة
دع أعداد = [10, 20, 30, 40, 50];
لكل ت في 0..5 {
اطبع_سطر!("العنصر [{}] = {}", ت, أعداد[ت]);
}
هيكل شخص {
اسم: نص,
عمر: صحيح,
راتب: عشري
}
دع موظف = شخص {
اسم: "محمد",
عمر: 30,
راتب: 5000.50
};
اطبع_سطر!("=== معلومات الموظف ===");
اطبع_سطر!("الاسم: {}", موظف.اسم);
اطبع_سطر!("العمر: {} سنة", موظف.عمر);
اطبع_سطر!("الراتب: {} ريال", موظف.راتب);

للحالات البسيطة، يمكن استخدام دوال الطباعة المباشرة:

// طباعة نص
اطبع("مرحباً");
// طباعة عدد صحيح
اطبع_صحيح(42);
// طباعة عدد عشري
اطبع_عشري(3.14);
// طباعة سطر جديد
اطبع_سطر_فارغ();
دالة سجل(مستوى: نص, رسالة: نص) {
دع وقت_حالي = وقت();
اطبع_سطر!("[{}] {}: {}", وقت_حالي, مستوى, رسالة);
}
// الاستخدام
سجل("معلومة", "بدء التطبيق");
سجل("تحذير", "الذاكرة منخفضة");
سجل("خطأ", "فشل الاتصال");
دالة اطبع_جدول(بيانات: متجه<(نص, صحيح)>) {
اطبع_سطر!("+------------+-------+");
اطبع_سطر!("| الاسم | القيمة |");
اطبع_سطر!("+------------+-------+");
لكل (اسم, قيمة) في بيانات {
اطبع_سطر!("| {} | {} |", اسم, قيمة);
}
اطبع_سطر!("+------------+-------+");
}
دالة اطبع_تقدم(حالي: صحيح, إجمالي: صحيح) {
دع نسبة = (حالي * 100) / إجمالي;
اطبع_سطر!("التقدم: {}% ({}/{})", نسبة, حالي, إجمالي);
}
// الاستخدام
لكل ت في 1..=10 {
اطبع_تقدم(ت, 10);
نم(100); // انتظار 100 مللي ثانية
}