Cairo-তে প্রিন্টিং ব্যবহার করে আপনি প্রোগ্রাম চালানোর সময় মেসেজ বা ডিবাগ তথ্য দেখাতে পারেন।
Cairo প্রিন্টিংয়ের জন্য দুটি ম্যাক্রো দেয়:
println!: একটি মেসেজ আউটপুট দেয়, তারপর একটি নিউলাইন দেয়।print!: একটি মেসেজ আউটপুট দেয়, কিন্তু নিউলাইন দেয় না।println!("Hello, Cairo!");
println!("x = {}, y = {}", 10, 20);
প্লেসহোল্ডার {} প্রদত্ত মান দিয়ে প্রতিস্থাপিত হয়।
সাথে সাথে প্রিন্ট না করে একটি ByteArray তৈরি করতে format! ব্যবহার করুন:
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
ইকোসের জাদুকরী জগতে 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");
ইকোসের জগৎ মন্ত্রমুগ্ধ বস্তুতে ভরা। এমনই একটি বস্তু হলো EchoStone, যাতে দুটি জাদুকরী বৈশিষ্ট্য আছে: power আর duration। আপনার কাজ হলো stringify_echo_stone ফাংশনটি বাস্তবায়ন করা, যা Display ট্রেইট বাস্তবায়নের মাধ্যমে একটি EchoStone-কে "EchoStone [power: x, duration: y]" বিশেষ ফরম্যাটে একটি ByteArray-তে রূপান্তর করে।
উদাহরণ:
let stone = EchoStone { power: 100, duration: 300 };
assert_eq!(stringify(stone), "EchoStone [power: 100, duration: 300]");
জাদুকরের শিক্ষানবিশ হিসেবে জটিল জাদুকরী গঠনের জন্য ডিবাগিং অপরিহার্য। আপনি Debug ট্রেইট ব্যবহার করে ডিবাগিংয়ের জন্য একটি EchoStone প্রিন্ট করে এমন একটি ফাংশন তৈরি করবেন। ফরম্যাটটি হবে: "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টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।