تتيح لك الطباعة في Cairo عرض الرسائل أو معلومات التصحيح أثناء تنفيذ البرنامج.
توفر Cairo وحدتَي ماكرو للطباعة:
println!: يُخرج رسالة متبوعة بسطر جديد.print!: يُخرج رسالة دون سطر جديد.println!("Hello, Cairo!");
println!("x = {}, y = {}", 10, 20);
تُستبدل العناصر النائبة {} بالقيم المقدمة.
استخدم format! لإنشاء ByteArray دون طباعته فورًا:
let result = format!("{}-{}-{}", "tic", "tac", "toe");
println!("{}", result); // Output: tic-tac-toe
بالنسبة للأنواع المخصصة، نفّذ Display أو اشتق Debug للطباعة:
#[derive(Debug)]
struct Point { x: u8, y: u8 }
let p = Point { x: 3, y: 4 };
println!("{:?}", p); // Debug output: Point { x: 3, y: 4 }
استخدم {:x} لطباعة الأعداد الصحيحة بالنظام الست عشري:
println!("{:x}", 255); // Output: ff
في عالم Echoes السحري، توجد تعويذة قوية تُسمّى "EchoSpeak". تتيح هذه التعويذة للسحرة نقل أفكارهم وملاحظاتهم عبر كلمات منطوقة، تكتبها أقلام ريش سحرية. ولإتقان هذه التعويذة، على السحرة أن يتعلّموا كيف يصوغون كلماتهم وأفكارهم بوضوح وإيجاز، سواء تعلّق الأمر بأعداد أو أشياء أو تراكيب سحرية معقّدة.
مهمتك بصفتك متدرّبًا لدى ساحر هي إتقان فن EchoSpeak. ويتطلّب ذلك منك أن تتعلّم كيف تطبع أنواعًا مختلفة من البيانات السحرية على الرقوق المسحورة. تعمل EchoSpeak على أخذ حبر سحري خاص، يُمثّله ByteArray، ونقش رسائل منسّقة على الرقّ باستخدام تعويذات مثل println! و print!.
لكن عند التعامل مع تراكيب سحرية مخصّصة مثل العناصر المسحورة أو التعويذات، تحتاج EchoSpeak إلى تعويذة خاصة لتفهم كيفية تمثيل هذه الكائنات. وهنا يأتي دور سحرك: أن تتعلّم تنفيذ تعويذات خاصة تُعرف بـ traits للعناصر السحرية المخصّصة.
أحيانًا يحتاج السحرة إلى تنسيق كلماتهم السحرية قبل نقشها على الرقوق. ستكتب دالة تنسّق ثلاث كلمات سحرية في رسالة واحدة.
نفّذ دالة تُسمّى format_magical_chant تُرجع سلسلة نصية منسّقة بالشكل "chant1-chant2-chant3".
مثال:
let result = format_magical_chant("Spark", "Shine", "Glow");
assert_eq!(result, "Spark-Shine-Glow");
عالم Echoes مليء بالعناصر المسحورة. ومن هذه العناصر EchoStone، وهو يحتوي على صفتين سحريتين: القوة والمدة.
مهمتك هي تنفيذ دالة stringify_echo_stone التي تحوّل EchoStone إلى ByteArray بالصيغة الخاصة "EchoStone [power: x, duration: y]" عبر تنفيذ سمة Display.
مثال:
let stone = EchoStone { power: 100, duration: 300 };
assert_eq!(stringify(stone), "EchoStone [power: 100, duration: 300]");
بصفتك متدرّبًا لدى ساحر، يُعدّ تصحيح الأخطاء أمرًا ضروريًا للتراكيب السحرية المعقّدة. ستُنشئ دالة تطبع EchoStone لأغراض تصحيح الأخطاء باستخدام سمة Debug. وينبغي أن تكون الصيغة: "Debugging EchoStone: { power: x, duration: y }".
مثال:
let stone = EchoStone { power: 25, duration: 10 };
assert_eq!(format!("{:?}", stone), "Debugging EchoStone: { power: 25, duration: 10 }");
سجّل في Exercism لتتعلّم وتتقن Cairo عبر 25 مفهومًا68 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.